Objective c 应用程序在调度队列中崩溃:NSOperationQueue

Objective c 应用程序在调度队列中崩溃:NSOperationQueue,objective-c,nsoperation,nsoperationqueue,Objective C,Nsoperation,Nsoperationqueue,我的应用程序有时会出现以下崩溃: Crashed Thread: 4 Dispatch queue: NSOperationQueue 0x7fc2d96277c0 :: NSOperation 0x7fc2d9704440 (QOS: UTILITY) Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x000007fc2d968980

我的应用程序有时会出现以下崩溃:

Crashed Thread:        4  Dispatch queue: NSOperationQueue 0x7fc2d96277c0 :: NSOperation 0x7fc2d9704440 (QOS: UTILITY)

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x000007fc2d968980
Exception Note:        EXC_CORPSE_NOTIFY

Thread 4 Crashed:: Dispatch queue: NSOperationQueue 0x7fc2d96277c0 :: NSOperation 0x7fc2d9704440 (QOS: UTILITY)
0   libobjc.A.dylib                 0x00007fff86bd720f objc_release + 31
1   libobjc.A.dylib                 0x00007fff86bdeb81 object_cxxDestructFromClass(objc_object*, objc_class*) + 127
2   libobjc.A.dylib                 0x00007fff86bd7383 objc_destructInstance + 116
3   libobjc.A.dylib                 0x00007fff86bd72e5 object_dispose + 22
4   libobjc.A.dylib                 0x00007fff86bdd224 objc_object::sidetable_release(bool) + 242
5   com.apple.CoreFoundation        0x00007fff9198d2dd -[__NSArrayM dealloc] + 205
6   libobjc.A.dylib                 0x00007fff86bdd224 objc_object::sidetable_release(bool) + 242
7   com.my.app                      0x0000000105776471 -[MyNSOperation execute] + 1438
8   com.apple.Foundation            0x00007fff8d59726e -[NSObject(NSThreadPerformAdditions) performSelector:onThread:withObject:waitUntilDone:modes:] + 1115
9   com.apple.Foundation            0x00007fff8d61b309 -[NSObject(NSThreadPerformAdditions) performSelector:onThread:withObject:waitUntilDone:] + 119
10  com.apple.Foundation            0x00007fff8d5f60be __NSFireDelayedPerform + 377
11  com.apple.CoreFoundation        0x00007fff919f19f4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
12  com.apple.CoreFoundation        0x00007fff919f1683 __CFRunLoopDoTimer + 1075
13  com.apple.CoreFoundation        0x00007fff919f11da __CFRunLoopDoTimers + 298
14  com.apple.CoreFoundation        0x00007fff919e86d1 __CFRunLoopRun + 1841
15  com.apple.CoreFoundation        0x00007fff919e7d38 CFRunLoopRunSpecific + 296
16  com.apple.Foundation            0x00007fff8d5870f9 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 270
17  com.my.app                      0x000000010574ff10 -[BaseMyNSOperation start] + 711
18  com.apple.Foundation            0x00007fff8d5a41b0 __NSOQSchedule_f + 194
19  libdispatch.dylib               0x00007fff8d51c453 _dispatch_client_callout + 8
20  libdispatch.dylib               0x00007fff8d521083 _dispatch_queue_drain + 754
21  libdispatch.dylib               0x00007fff8d5276c9 _dispatch_queue_invoke + 549
22  libdispatch.dylib               0x00007fff8d51fd9b _dispatch_root_queue_drain + 538
23  libdispatch.dylib               0x00007fff8d51fb48 _dispatch_worker_thread3 + 91
24  libsystem_pthread.dylib         0x00007fff88c884f2 _pthread_wqthread + 1129
25  libsystem_pthread.dylib         0x00007fff88c86375 start_wqthread + 13
我知道这与
服务质量
有关,因此我在我的
操作
执行
消息中添加了以下代码:

self.qualityOfService = NSQualityOfServiceUtility;

我找不到与这次事故有关的任何其他参考资料。任何人都可以推荐任何线索?

最近,我经常在IOS 9.0.2的-[[uuuuu NSArrayM dealloc]中看到这种神秘的崩溃EXC_BAD_ACCESS KERN_INVALID_ADDRESS。这发生在OSX 10.11中,但从我目前的理解来看,这两种崩溃都是相当新的,崩溃是在处理
NSMutableArray
时发生的,它可能是因为它已经发布而崩溃的。这有道理吗?可能有道理。但我现在不知道如何在ARC中释放已经释放的阵列。可能是您在
CFArray
中的某个地方使用了错误的
\uu桥
选项吗?我没有,所以它确实没有意义。不过我还有另一个想法:我在某个地方读到,如果某个类具有MyNSOperation的委托的弱属性,则可能会导致此问题。。