Сбой CFNetwork с использованием Swift в iOS

В моем приложении произошел следующий сбой, но я не могу воспроизвести его, чтобы найти его источник. Основная работа - это несколько асинхронных сетевых запросов на загрузку, которые помещаются в параллельный OperationQueue и также поддерживают фоновый переход.

Сбой: NSOperationQueue 0x174037ae0:: NSOperation 0x17044f7b0 (QOS: DEFAULT) EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000ce6fabec8

Сбой: NSOperationQueue 0x170036660:: NSOperation 0x17425e360 (QOS: DEFAULT)

0  libobjc.A.dylib                0x181c21704 objc_object::release() + 8
1  CFNetwork                      0x1839a196c __destroy_helper_block_.465 + 40
2  libsystem_blocks.dylib         0x1820afa28 _Block_release + 144
3  Foundation                     0x183c0623c -[NSBlockOperation dealloc] + 64
4  Foundation                     0x183cc245c __NSOQSchedule_f + 484
5  libdispatch.dylib              0x18205a1bc _dispatch_client_callout + 16
6  libdispatch.dylib              0x1820683dc _dispatch_queue_serial_drain + 928
7  libdispatch.dylib              0x18205d9a4 _dispatch_queue_invoke + 652
8  libdispatch.dylib              0x18206a34c _dispatch_root_queue_drain + 572
9  libdispatch.dylib              0x18206a0ac _dispatch_worker_thread3 + 124
10 libsystem_pthread.dylib        0x1822632a0 _pthread_wqthread + 1288
11 libsystem_pthread.dylib        0x182262d8c start_wqthread + 4

Приложение написано в Swift 3. Есть что-нибудь, что вы можете предложить?

1 ответ

Я только что решил этот же журнал сбоев, обновив стороннюю библиотеку. Проблема в этой библиотеке определяла объект блока как (сильный, неатомный) вместо (копия). Это была библиотека Objective-C, но те же сильные / слабые принципы применимы к свойствам блочного объекта Swift. Если эти блоки были добавлены в NSOperationQueue, вы можете увидеть эту ошибку. Есть ли у вас сильные свойства блоков или какие-либо сильные ссылки в NSOperationQueues?

Другие вопросы по тегам