Iphone 如何知道postNotificationName:object:userInfo的崩溃位置

Iphone 如何知道postNotificationName:object:userInfo的崩溃位置,iphone,objective-c,cocoa,nsnotificationcenter,Iphone,Objective C,Cocoa,Nsnotificationcenter,在Xcode 4.6中是否有一些方法可以知道崩溃原因 The crash stack is : Exception Type: SIGSEGV Exception Codes: SEGV_ACCERR at 0xd9f2c061 Crashed Thread: 0 Thread 0 Crashed: 0 libobjc.A.dylib 0x3a74f5aa objc_msgSend + 10 1 Foundation

在Xcode 4.6中是否有一些方法可以知道崩溃原因

The crash stack is :
Exception Type:  SIGSEGV
Exception Codes: SEGV_ACCERR at 0xd9f2c061
Crashed Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib                     0x3a74f5aa objc_msgSend + 10
1   Foundation                          0x33157599 -[NSNotificationCenter postNotificationName:object:userInfo:] + 73
2   UIKit                               0x347830cd -[UIApplication _handleApplicationSuspend:eventInfo:] + 733
3   UIKit                               0x346f91e7 -[UIApplication handleEvent:withNewEvent:] + 2459
4   UIKit                               0x346f86cd -[UIApplication sendEvent:] + 73
5   UIKit                               0x346f811b _UIApplicationHandleEvent + 6155
6   GraphicsServices                    0x363ee5a3 _PurpleEventCallback + 591

几乎可以肯定的是,一个对象在通知中心注册以接收该通知,但在解除分配之前未能取消注册

发现问题的最简单方法是启用NSZombies-请参阅例如。如果在启用僵尸的情况下运行,那么应该释放的对象将保留在内存中,但如果有人试图调用它们,则会引发异常。因此,您可以准确地了解通知中心试图调用的对象类型,以及可能出错的对象


给定通知来源的名称-
\u handleApplicationSuspend:eventInfo:
-您可能还需要快速检查注册
UIApplicationWillResignActiveNotification
的任何人,
UIApplicationIdentinterBackgroundNotification
和其他与应用程序暂停相关的通知。

向通知中心添加观察者时,必须在解除分配/销毁对象时将其删除。否则,通知中心将向被毁坏的物体发送通知,导致碰撞

1-检查您是否正确处理从通知中心移除的问题。(通常在dealloc方法上执行此操作)


2-如果步骤1没有帮助,请使用instruments&zombies评测应用程序。它将指出哪一个对象已被销毁,但仍在接收消息

可能是一个有用的信息,它似乎只在ios7上崩溃,因为我的项目在ios6上运行得很好。

也许userInfo is的值为零

[[NSNotificationCenter defaultCenter] postNotificationName:SayLoggedInNotification object:wSelf userInfo:@{@"from": wSelf.from}];
# wSelf.form is nil

dealloc函数中的以下代码是否可以删除在init中添加的所有观察者<代码>NSNotificationCenter*nc=[NSNotificationCenter defaultCenter];[nc removeObserver:self]是的,它会从它注册的所有通知中删除对象(self)。所以奇怪的是,所有观察者都应该被删除,但仍然存在崩溃。