我们的应用程序自发布以来发生了崩溃。我们已经解决了所有其他大型崩溃问题,只留下了这一次。 Crashlytics报告崩溃如下:
Crashed: com.apple.root.default-priority
EXC_BREAKPOINT UNKNOWN at 0x0000defe
Thread : Crashed: com.apple.root.default-priority
0 libsystem_platform.dylib 0x3894b620 _os_lock_corruption_abort + 18446744073709552000
1 libsystem_platform.dylib 0x3894b61f _OSSpinLockLockSlow$VARIANT$wfe + 98
2 Foundation 0x2e9ad333 __NSOQSchedule + 50
3 Foundation 0x2e90cfaf +[__NSOperationInternal _observeValueForKeyPath:ofObject:changeKind:oldValue:newValue:indexes:context:] + 1198
4 Foundation 0x2e90ca0b NSKeyValueNotifyObserver + 90
5 Foundation 0x2e90c765 NSKeyValueDidChange + 344
6 Foundation 0x2e90be61 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 508
7 Foundation 0x2e9ad1f9 __103+[__NSOperationInternal _observeValueForKeyPath:ofObject:changeKind:oldValue:newValue:indexes:context:]_block_invoke + 108
8 libdispatch.dylib 0x3881e0c3 _dispatch_call_block_and_release + 10
9 libdispatch.dylib 0x388237d9 _dispatch_root_queue_drain + 224
10 libdispatch.dylib 0x388239c5 _dispatch_worker_thread2 + 56
11 libsystem_pthread.dylib 0x3894ddff _pthread_wqthread + 298
注意事项:
__NSOperationInternal
表示这是一个NSOperation错误。我很感激任何想法或洞察这次崩溃的原因。
答案 0 :(得分:0)
这绝对是多线程问题。
假设:
可能是因为函数在下一次调用之前启动并在下一次调用之后结束:
[someObj removeObserver: self forKeyPath: @"xxx"];
此处描述类似的问题,但对于NSNotificationCenter:
http://lapcatsoftware.com/articles/nsnotificationcenter-is-threadsafe-not.html
祝你好运。