这是一个远射,因为谷歌搜索没有返回任何内容。有时候,往往不够的地方值得进一步调查,但不是经常不够,我可以追查的时候,或者它究竟是如何发生的,我得到下面的异常,当我打电话上一个NSManagedObjectContext
:无法识别的核心数据保存选择器异常
-[_NSObjectID_48_0 _stateFlags]: unrecognized selector sent to instance 0x8675570
的背景是孩子上下文类型为NSPrivateQueueConcurrencyType
,它是NSMainQueueConcurrencyType
类型的主要上下文的子节点。
我真的没有比堆栈跟踪其他任何进一步的信息:
任何密码学家能做出什么出格的堆栈跟踪变出一些可能的想法,问题可能是什么?
鉴于发生这种情况 - 在“验证” - 它会导致我认为一些托管对象有一个“验证”的方法,并试图发送“stateFlags”的一些其他对象。你有权访问代码或模型吗?你可以搜索源代码吗?您可以在方法“stateFlags”上设置一个断点并“捕捉”发送它的对象。 –
这些消息的问题是,很难找出问题出在哪里。我发现尝试打印“实例0x ....”看看是否看起来很熟悉通常会有所帮助;在gdb中做“po(NSObject *)0x8675570”。如果你幸运的话,你可以重新设计一个你的对象,然后找出你将它传递给你不应该传递给它的东西,或者你必须添加一些东西使它符合某些东西。 –
@DavidH我的任何对象都没有自定义的验证方法,上面看到的所有验证方法都是内部的。即使它不在我的代码中,是否仍然有办法在某处设置断点? @ ChristianStieber好吧,我必须等到下一次我从现在开始出现这个崩溃时,我真的不能重现它。它只是来来去去。我如何使用LLDB打印对象? – Snowman