Ios UIDevice setOrientation:已设置动画:导致EXC\u访问错误
我已经向iTunes提交了一份崩溃日志。我不知道如何重现这个问题,所以我很难排除故障 [UIDevice setOrientation:animated:]在iOS 6上导致EXC_BAD_访问崩溃 如有任何建议,将不胜感激 以下是崩溃日志的相关部分:Ios UIDevice setOrientation:已设置动画:导致EXC\u访问错误,ios,uikit,exc-bad-access,uidevice,Ios,Uikit,Exc Bad Access,Uidevice,我已经向iTunes提交了一份崩溃日志。我不知道如何重现这个问题,所以我很难排除故障 [UIDevice setOrientation:animated:]在iOS 6上导致EXC_BAD_访问崩溃 如有任何建议,将不胜感激 以下是崩溃日志的相关部分: Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 libobjc.A.dylib 0x347d9692 objc
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x347d9692 objc_msgSend_stret + 18
1 CoreFoundation 0x3641f034 _CFXNotificationPost
2 Foundation 0x33ee1d8c -[NSNotificationCenter postNotificationName:object:userInfo:]
3 UIKit 0x377a5c68 -[UIDevice setOrientation:animated:]
4 UIKit 0x377a03de -[UIApplication handleEvent:withNewEvent:]
5 UIKit 0x3779f6d0 -[UIApplication sendEvent:]
6 UIKit 0x3779f11e _UIApplicationHandleEvent
7 GraphicsServices 0x369525a0 _PurpleEventCallback
8 GraphicsServices 0x369521ce PurpleEventCallback
9 CoreFoundation 0x364a3170 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__
10 CoreFoundation 0x364a3112 __CFRunLoopDoSource1
11 CoreFoundation 0x364a1f94 __CFRunLoopRun
12 CoreFoundation 0x36414eb8 CFRunLoopRunSpecific
13 CoreFoundation 0x36414d44 CFRunLoopRunInMode
14 GraphicsServices 0x369512e6 GSEventRunModal
15 UIKit 0x377f32fc UIApplicationMain
16 MyApp 0x0001234a main + 70
17 MyApp 0x000122fc start + 36
我不认为这是一个活生生的物体把事情搞砸了。
我想说的是,您忘记注销了一个观察者,它被解除了分配,但仍然计划获得通知--查看订阅此特定通知的任何类,看看添加/删除是否平衡,就像前面提到的@Daij Djan一样,这不可能是方向更改本身,因为仍然有一个
NSNotification
的帖子,因此应用程序正在崩溃。再次查看您添加到的类NSNotificationCenter
,取消注册可能没有问题,但注册时,如它不会导致它,无论您如何响应它都会导致它。看看你在应对设备方向变化的方法中做了些什么。这是有道理的,但糟糕的是,这并不能缩小范围。我拥有的大多数对象都可以处理旋转事件…可能只是“设备”方向的更改(面朝上、面朝下等),而不是“界面”方向的更改(纵向、横向),但我不确定我是否同意,但我检查了使用通知的每个对象,并且正在删除dealloc中所有对象中的通知。也就是说,在一些dealoc方法中,我并没有首先删除通知;在释放一些对象后,我正在移除它。我想有一个很小的可能性可能导致了它,所以我将取消通知移动到每个dealloc方法的顶部。如果仍然发生,请尝试在启用僵尸的工具中运行它。请参阅原始帖子;我无法重新创建该问题。我只有一个提交给iTunes使用的崩溃日志。为什么?我的答案与《撞车报告》中的答案相吻合。不要因为你不喜欢这个答案或者它不能100%地解决问题就对其他人投反对票。只要它不是完全离题,它就有助于解决问题。