Сбой: имя селектора objc_msgSend(): _didReceiveConnectionCacheKey

Я реализовал NSTimer, который вызывает простой метод:

NSTimer *timer = [NSTimer timerWithTimeInterval:kTimerDelay target:self selector:@selector(synchronise) userInfo:nil repeats:YES];

[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

Этот метод создает NSDictionnary, ищет объекты в контексте CoreData с их идентификаторами и перечисляет:

- (void)synchronise
{
    NSDictionary *postDict = @{...};
    NSArray *objectIdList = [postDict valueForKeyPath:@"object_items.@allKeys"];
    NSArray *objectList = [P_CoreDataObject MR_findAllWithPredicate:[NSPredicate predicateWithFormat:@"id IN %@", objectIdList]];
    MyServiceService *myService = [[MyServiceService alloc] init];
    for (P_CoreDataObject *object in objectList) {
        [myService sendLink:object.link_url success:nil failure:nil];
    }
}

Я вызываю MR_findAll для другого объекта для создания NSDictionnary, и он работает хорошо, но в некоторых редких случаях происходит сбой!

Кто-нибудь знает, как понять этот сбой?

Трассировка стека:

имя селектора objc_msgSend(): _didReceiveConnectionCacheKey:

РЕДАКТИРОВАТЬ: трассировка стека потока

Thread 18 Crashed: 0 libobjc.A.dylib
0x0000000183c6dbc8 objc_msgSend + 8 1 CFNetwork
0x0000000184c3a518 SessionConnectionLoadable::_loaderClientEvent_DidReceiveConnectionCacheKey(HTTPConnectionCacheKey*) + 52 2 CFNetwork 0x0000000184cb9178 ___ZN19URLConnectionLoader36protocolDidReceiveConnectionCacheKeyEP22HTTPConnectionCacheKey_block_invoke + 36 3 libdispatch.dylib 0x0000000184041630 _dispatch_call_block_and_release + 20 4 libdispatch. dylib 0x00000001840415f0 _dispatch_client_callout + 12 5 libdispatch.dylib 0x000000018404d634 _dispatch_queue_drain + 860 6 libdispatch.dylib
0x00000001840450f4 _dispatch_queue_invoke + 460 7 libdispatch.dylib 0x000000018404f504 _dispatch_root_queue_drain + 724 8
libdispatch.dylib 0x000000018404f224 _dispatch_worker_thread3 + 108 9 libsystem_pthread.dylib 0x0000000184255470 _pthread_wqthread + 1088 10 libsystem_pthread.dylib 0x0000000184255020 start_wqthread + 0

Это странно. В этом потоке не упоминается метод, причастный к сбою. Вы уверены, что это говорит о том, что поток 0 является потоком сбоя?


person vmeyer    schedule 08.02.2016    source источник
comment
Черт возьми! Ты прав ! Нить 18 порвалась. Я обновляю свой вопрос.   -  person Phillip Mills    schedule 08.02.2016
comment
Я тоже получаю этот сбой. В моем случае это происходит, когда мое приложение выполняет фоновое обновление приложения из application:performFetchWithCompletionHandler: я подозреваю, что проблема в том, что я использую URLSession переднего плана, а вместо этого должен использовать фоновый. Это вообще соответствует вашей ситуации?   -  person vmeyer    schedule 08.02.2016
comment
Да, я использую фоновую службу передачи с URLSession, и я использую как фоновые, так и форграундные сеансы. Я только что понял, что установил FinishEventsForBackgroundURLSessionBlock для каждой URLSession. Может ли это быть причиной моего сбоя?   -  person Paul Buchanan    schedule 12.05.2016
comment
связанные: stackoverflow.com/questions/35387246/   -  person vmeyer    schedule 13.05.2016
comment
Привет, такая же проблема. github.com/AFNetworking/AFNetworking/issues/3530 Кто-нибудь из вас использует AFNetworking? Также эта ссылка может помочь developer.apple.com /library/ios/documentation/Cocoa/Conceptual/   -  person user102008    schedule 19.05.2016
comment
Thread 0: 0 libsystem_kernel.dylib 0x000000018417680c pread + 8 1 libsqlite3.dylib 0x0000000184ab0b9c sqlite3_snprintf + 13660 2 libsqlite3.dylib
0x0000000184acfb20 sqlite3_log + 5472 3 libsqlite3.dylib
0x0000000184aceab8 sqlite3_log + 1272 4 libsqlite3.dylib
0x0000000184af223c sqlite3_step + 60112 5 libsqlite3.dylib
0x0000000184af3620 sqlite3_value_text + 3412 6 libsqlite3.dylib
0x0000000184ae5088 sqlite3_step + 6428 7 libsqlite3.dylib
0x0000000184ae3960 sqlite3_step + 500 8 CoreData
0x000000018604fab8 _execute + 144 9 CoreData
0x000000018605f988 -[NSSQLiteConnection fetchResultSet:usingFetchPlan:] + 1644 10 CoreData
0x000000018616150c newFetchedRowsForFetchPlan_MT + 1560 11 CoreData
0x00000001860567e4 -[NSSQLCore objectsForFetchRequest:inContext:] + 536 12 CoreData 0x0000000186056218 -[NSSQLCore executeRequest:withContext:error:] + 596 13 CoreData 0x000000018611d910 __65-[NSPersistentStoreCoordinator executeRequest:withContext:error:]_block_invoke + 2620 14 CoreData
0x0000000186125d58 gutsOfBlockToNSPersistentStoreCoordinatorPerform + 172 15 libdispatch.dylib 0x00000001840415f0 _dispatch_client_callout + 12 16 libdispatch.dylib 0x000000018404c89c _dispatch_barrier_sync_f_invoke + 96 17 CoreData
0x00000001861185b0 _perform + 176 18 CoreData
0x0000000186055e70 -[NSPersistentStoreCoordinator executeRequest:withContext:error:] + 296 19 CoreData
0x0000000186054938 -[NSManagedObjectContext executeFetchRequest:error:] + 532 20 CoreData
0x00000001860f6318 -[NSManagedObjectContext(_NestedContextSupport) _parentObjectsForFetchRequest: inContext:error:] + 416 21 CoreData 0x00000001860f6a44 __82-[NSManagedObjectContext(_NestedContextSupport) executeRequest:withContext:error:]_bloc k_invoke + 344 22 CoreData
0x00000001860f8d80 internalBlockToNSManagedObjectContextPerform + 104 23 libdispatch.dylib 0x00000001840415f0 _dispatch_client_callout + 12 24 libdispatch.dylib 0x000000018404c89c _dispatch_barrier_sync_f_invoke + 96 25 CoreData
0x00000001860e86fc _perform + 208 26 CoreData
0x00000001860f6824 -[NSManagedObjectContext(_NestedContextSupport) executeRequest :withContext:error:] + 172 27 CoreData
0x0000000186054938 -[NSManagedObjectContext executeFetchRequest:error:] + 532 28 Youboox
0x0000000100236268 __67+[NSManagedObject(MagicalRecord) MR_executeFetchMaxRequest:5mObjectinContext:]_block ) 29 CoreData
0x00000001860ed080 developerSubmittedBlockToNSManagedObjectContextPerform + 192 30 CoreData 0x00000001860ecf48 -[NSManagedObjectContext PerformBlockAndWait:] + 216 31 Youboox 0x 00000001002361ac +[NSManagedObject(MagicalRecord) MR_executeFetchRequest:inContext:] (NSManagedObject+MagicalRecord.m:50) 32 Youboox
0x00000001002344d4 +[NSManagedObject(MagicalFinders) MR_findAllWithPredicate)<3mox7Bo6 YouContext:] (NSagedManagedObject(MagicalFinders) MR_findAllWithPredicate)<3mox7Bo6YouObject+. br> 0x0000000100234568 +[NSManagedObject(MagicalFinders) MR_findAllWithPredicate:] (NSManagedObject+MagicalFinders.m:84)   -  person Giorgos Ath    schedule 22.08.2016