Использование FMDB: как получить доступ к sqlite в основном и фоновом потоках одновременно

В фоновом потоке вставка массива данных (более 10 000 записей) с использованием FMDatabaseQueue

FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:[self dbPath]];

queue inTransaction:^(FMDatabase *db) {

    for (NSDictionary *propertyValueDictionary in customers) {
        NSString *customerId = [propertyValueDictionary objectForKey:@"CustomerId"];
        NSString *property = [propertyValueDictionary objectForKey:@"Property"];
        NSString *value =  [propertyValueDictionary objectForKey:@"Value"];
        BOOL deleted = [[propertyValueDictionary objectForKey:@"Deleted"] boolValue];
        NSString *revision = [propertyValueDictionary objectForKey:@"Revision"];

        NSString *sql = @"INSERT OR REPLACE INTO Customer (CustomerId, Property, Value) VALUES (?, ?, ?);";
        [db executeUpdate:sql, customerId, property, value];

    }
}];

в то же время я хочу читать/писать sqlite в основном потоке без задержки и блокировки пользовательского интерфейса.

Любое решение? Заранее спасибо.


person chimbu    schedule 19.01.2016    source источник
comment
Это может быть связано. stackoverflow.com/q/12117016/5608661   -  person Jordan Davies    schedule 19.01.2016