UIApplicationMain的EXC_BAD_ACCESS-如何解释此回溯?

|
#0  0x0149609b in objc_msgSend ()
#1  0x06a75960 in ?? ()
#2  0x0108df9a in _performRunLoopAction ()
#3  0x0131189b in __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ ()
#4  0x012a66e7 in __CFRunLoopDoObservers ()
#5  0x0126f1d7 in __CFRunLoopRun ()
#6  0x0126e840 in CFRunLoopRunSpecific ()
#7  0x0126e761 in CFRunLoopRunInMode ()
#8  0x01c871c4 in GSEventRunModal ()
#9  0x01c87289 in GSEventRun ()
#10 0x00393c93 in UIApplicationMain ()
#11 0x00001f68 in main (argc=1, argv=0xbffff028) at /Users/Stu/Documents...
我对顶部附近的ѭ1有点困惑。看到此错误出现在第2行时,我认为自动释放池存在内存访问问题,但是到目前为止我还没有发现。 当我要求删除具有某些属性的CoreData对象时,会发生错误。此过程将获取一个NSDate对象,找到以该日期作为其“时间戳”的核心数据对象,然后删除该对象。 我已经将NSZombie以及NSDebug和MallocStackLogging一起启用,但是日志中没有显示任何信息(当然,当我请求时,回溯除外)。单步执行代码也无助于缩小问题的范围。     
已邀请:
        导致EXC_BAD_ACCESS的objc_msgSend()通常意味着未在目标对象中实现功能。我们还可以看到正在执行Observer回调。我冒昧地猜测到您在一个名为-addObserver:selector:name:object:的地方使用了错误的选择器。 (通常在堆栈跟踪之前打印)。     
        问题解决了。 正如我最初推测的那样,这确实与自动释放池有关(始终信任您的直觉...)。出于某些奇怪的原因-可能是在不睡36个小时之后-我自动释放了一个没有业务自动释放的对象。这只是一个简单的自定义getter样式方法,该方法返回当前选定的文本对象。 不确定为什么不为其创建NSZombie ...     

要回复问题请先登录注册