2014-01-23 62 views
1

我的应用程序闲置30分钟后崩溃。下面是崩溃报告..iOS应用程序闲置一段时间后崩溃

该应用程序已加载,但当我尝试打开一个弹出式控件(WYPopoverControl)它不会打开,过了一会儿,当我专注于任何文本框时它会随机崩溃。崩溃之后,当应用程序重新打开时,所有内容都将恢复正常工作。我如何调试这些问题?

崩溃的样子,我不去除通知中心的观察员。我把RemoveObserver在dealloc的操作系统所需的所有地方..但它仍然崩溃

Thread 0 Crashed: 
0 libobjc.A.dylib     0x39a8fb26 objc_msgSend + 6 
1 CoreFoundation     0x2f616116 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 10 
2 CoreFoundation     0x2f58a252 _CFXNotificationPost + 1714 
3 Foundation      0x2ff6fc28 -[NSNotificationCenter postNotificationName:object:userInfo:] + 72 
4 UIKit       0x31dcc6b2 -[UIDevice setOrientation:animated:] + 290 
5 UIKit       0x31dcbcfc -[UIApplication handleEvent:withNewEvent:] + 1304 
6 UIKit       0x31dcb71c -[UIApplication sendEvent:] + 68 
7 UIKit       0x31e30b38 _UIApplicationHandleEvent + 660 
8 GraphicsServices    0x342af70a _PurpleEventCallback + 606 
9 GraphicsServices    0x342af2f2 PurpleEventCallback + 30 
10 CoreFoundation     0x2f61e9dc __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 32 
11 CoreFoundation     0x2f61e976 __CFRunLoopDoSource1 + 342 
12 CoreFoundation     0x2f61d14a __CFRunLoopRun + 1394 
13 CoreFoundation     0x2f587c22 CFRunLoopRunSpecific + 518 
14 CoreFoundation     0x2f587a06 CFRunLoopRunInMode + 102 
15 GraphicsServices    0x342ae27e GSEventRunModal + 134 
16 UIKit       0x31e2b044 UIApplicationMain + 1132 
17 dark       0x000e7a78 0xe0000 + 31352 
18 libdyld.dylib     0x39f9cab4 start + 0 

Thread 1: 
0 libsystem_kernel.dylib   0x3a04083c kevent64 + 24 
1 libdispatch.dylib    0x39f81210 _dispatch_mgr_invoke + 228 
2 libdispatch.dylib    0x39f80f96 _dispatch_mgr_thread$VARIANT$mp + 34 

Thread 2: 
0 libsystem_kernel.dylib   0x3a052f38 __psynch_cvwait + 24 
1 libsystem_pthread.dylib   0x3a0bb224 _pthread_cond_wait + 536 
2 libsystem_pthread.dylib   0x3a0bc000 pthread_cond_wait + 36 
3 Foundation      0x2ffc23f2 -[NSCondition wait] + 190 
4 dark       0x002e11aa 0xe0000 + 2101674 
5 Foundation      0x30037c82 __NSThread__main__ + 1058 
6 libsystem_pthread.dylib   0x3a0bbc1a _pthread_body + 138 
7 libsystem_pthread.dylib   0x3a0bbb8a _pthread_start + 98 
8 libsystem_pthread.dylib   0x3a0b9c8c thread_start + 4 

Thread 3: 
0 libsystem_kernel.dylib   0x3a040a8c mach_msg_trap + 20 
1 libsystem_kernel.dylib   0x3a040888 mach_msg + 44 
2 CoreFoundation     0x2f61e7be __CFRunLoopServiceMachPort + 150 
3 CoreFoundation     0x2f61cee4 __CFRunLoopRun + 780 
4 CoreFoundation     0x2f587c22 CFRunLoopRunSpecific + 518 
5 CoreFoundation     0x2f587a06 CFRunLoopRunInMode + 102 
6 Foundation      0x2ff753d6 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 250 
7 Foundation      0x2ffc630c -[NSRunLoop(NSRunLoop) run] + 76 
8 dark       0x003073a0 0xe0000 + 2257824 
9 Foundation      0x30037c82 __NSThread__main__ + 1058 
10 libsystem_pthread.dylib   0x3a0bbc1a _pthread_body + 138 
11 libsystem_pthread.dylib   0x3a0bbb8a _pthread_start + 98 
12 libsystem_pthread.dylib   0x3a0b9c8c thread_start + 4 

Thread 4 name: com.apple.NSURLConnectionLoader 
Thread 4: 
0 libsystem_kernel.dylib   0x3a040a8c mach_msg_trap + 20 
1 libsystem_kernel.dylib   0x3a040888 mach_msg + 44 
2 CoreFoundation     0x2f61e7be __CFRunLoopServiceMachPort + 150 
3 CoreFoundation     0x2f61cee4 __CFRunLoopRun + 780 
4 CoreFoundation     0x2f587c22 CFRunLoopRunSpecific + 518 
5 CoreFoundation     0x2f587a06 CFRunLoopRunInMode + 102 
6 Foundation      0x2ffc22f2 +[NSURLConnection(Loader) _resourceLoadLoop:] + 314 
7 Foundation      0x30037c82 __NSThread__main__ + 1058 
8 libsystem_pthread.dylib   0x3a0bbc1a _pthread_body + 138 
9 libsystem_pthread.dylib   0x3a0bbb8a _pthread_start + 98 
10 libsystem_pthread.dylib   0x3a0b9c8c thread_start + 4 

Thread 5 name: AFNetworking 
Thread 5: 
0 libsystem_kernel.dylib   0x3a040a8c mach_msg_trap + 20 
1 libsystem_kernel.dylib   0x3a040888 mach_msg + 44 
2 CoreFoundation     0x2f61e7be __CFRunLoopServiceMachPort + 150 
3 CoreFoundation     0x2f61cee4 __CFRunLoopRun + 780 
4 CoreFoundation     0x2f587c22 CFRunLoopRunSpecific + 518 
5 CoreFoundation     0x2f587a06 CFRunLoopRunInMode + 102 
6 Foundation      0x2ff753d6 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 250 
7 Foundation      0x2ffc630c -[NSRunLoop(NSRunLoop) run] + 76 
8 dark       0x00151150 0xe0000 + 463184 
9 Foundation      0x30037c82 __NSThread__main__ + 1058 
10 libsystem_pthread.dylib   0x3a0bbc1a _pthread_body + 138 
11 libsystem_pthread.dylib   0x3a0bbb8a _pthread_start + 98 
12 libsystem_pthread.dylib   0x3a0b9c8c thread_start + 4 

Thread 6 name: com.apple.CFSocket.private 
Thread 6: 
0 libsystem_kernel.dylib   0x3a053440 select$DARWIN_EXTSN + 20 
1 CoreFoundation     0x2f622680 __CFSocketManager + 480 
2 libsystem_pthread.dylib   0x3a0bbc1a _pthread_body + 138 
3 libsystem_pthread.dylib   0x3a0bbb8a _pthread_start + 98 
4 libsystem_pthread.dylib   0x3a0b9c8c thread_start + 4 

Thread 7: 
0 libsystem_kernel.dylib   0x3a040a8c mach_msg_trap + 20 
1 libsystem_kernel.dylib   0x3a040888 mach_msg + 44 
2 CoreFoundation     0x2f61e7be __CFRunLoopServiceMachPort + 150 
3 CoreFoundation     0x2f61cee4 __CFRunLoopRun + 780 
4 CoreFoundation     0x2f587c22 CFRunLoopRunSpecific + 518 
5 CoreFoundation     0x2f5cb736 CFRunLoopRun + 94 
6 CoreMotion      0x2fc3e230 ___lldb_unnamed_function1404$$CoreMotion + 724 
7 libsystem_pthread.dylib   0x3a0bbc1a _pthread_body + 138 
8 libsystem_pthread.dylib   0x3a0bbb8a _pthread_start + 98 
9 libsystem_pthread.dylib   0x3a0b9c8c thread_start + 4 

Thread 8: 
0 libsystem_kernel.dylib   0x3a053c7c __workq_kernreturn + 8 
1 libsystem_pthread.dylib   0x3a0b9dc6 _pthread_wqthread + 306 
2 libsystem_pthread.dylib   0x3a0b9c80 start_wqthread + 4 

Thread 9: 
0 libsystem_kernel.dylib   0x3a053c7c __workq_kernreturn + 8 
1 libsystem_pthread.dylib   0x3a0b9dc6 _pthread_wqthread + 306 
2 libsystem_pthread.dylib   0x3a0b9c80 start_wqthread + 4 

Thread 10: 
0 libsystem_kernel.dylib   0x3a053c7c __workq_kernreturn + 8 
1 libsystem_pthread.dylib   0x3a0b9dc6 _pthread_wqthread + 306 
2 libsystem_pthread.dylib   0x3a0b9c80 start_wqthread + 4 

Thread 0 crashed with ARM Thread State (32-bit): 
    r0: 0x17f45e70 r1: 0x00333765  r2: 0x1b88c240  r3: 0x00002060 
    r4: 0x17f1cbc0 r5: 0x27d21b80  r6: 0x27d21bdc  r7: 0x27d21aa0 
    r8: 0x1658a788 r9: 0x756f5935  r10: 0x00000000  r11: 0x00000001 
    ip: 0x3a326744 sp: 0x27d21aa0  lr: 0x2f616119  pc: 0x39a8fb26 
    cpsr: 0x20000030 
+4

尝试在'viewWillDisappear'中放入'RemoveObserver' – Akhilrajtr

+0

你有没有解决过这个问题? @Akhilrajtr - 为什么会更好? Dealloc是适合它的地方。 –

+0

@travoux:你是否已经解决了这个问题?如果是,请分享你的解决方案 – user3608500

回答

2

你注册了一个通知使用addObserver,但你永远不会删除自己作为该笔记的接收者。使用removeObserver(都与通知中心)。

现在你原来的“听众”消失了,但因为它仍然注册 - BOOM

,所以不要忘记注销自己!

+0

我已经在我订阅通知的所有类中添加了这项功能 - (void)dealloc {[NSNotificationCenter defaultCenter] removeObserver:self]; } – travoux

+0

之前的错误?这绝对是因为UIDeviceOrientationDidChange注意事项 –

+0

也许你使用了错误的选择器;) –

-1

我以前见过类似的破坏者。我有两个建议: 1.在viewWillAppear中添加一个观察者和viewWillDisAppear 2.删除指定的观察员就像一个实例:使用

NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; 
NSOperationQueue *mainQueue = [NSOperationQueue mainQueue]; 
self.localObserver = [center addObserverForName:NSManagedObjectContextObjectsDidChangeNotification 
                object:self.managedObjectContext queue:mainQueue usingBlock:^(NSNotification *notification) { 
                 //do something when you get this notification 
                }]; 

,然后在viewWillDisAppear注销它:

[[NSNotificationCenter defaultCenter] removeObserver:self.localObserver]; 

我所看到的是dealloc不在iOS 8中调用,它只在您收到内存警告时调用。所以尽量不要在那里取消注册。在早期版本中,它曾经像那样工作。

注意:在上面的代码片段中,我正在观察NSManagedObjectContextObjectsDidChangeNotification。您可以根据您的要求更改它。

+0

它最好使用-viewDidAppear:和 - viewDidDisappear :,因为对该函数的调用总是匹配的。在iOS 7+中,-viewWillAppear并不意味着视图真的会出现:它只是意味着它开始出现。例如。如果用户在导航视图控制器中做了一个反滑手势,并最终决定不想向后滑动(即他取消了该手势),则将调用-viewWillAppear,但最终该视图仍然不可见。当用户按下后退按钮时,再次调用-viewWillAppear:。 – Michael

相关问题