我有一个使用RestKit库和CoreData的iOS应用程序。自从Xcode8之后,我看到的日志比以前多得多,其中一个对我来说毫无意义。
error: An observer of NSManagedObjectContextDidSaveNotification illegally threw an exception. Objects saved = {
inserted = "{(\n)}";
managedObjectContext = "<_PFWeakReference: 0x600000621560>";
updated = "{(\n ... )}";
}
and exception = [<_PFWeakReference 0x600000621560> valueForUndefinedKey:]: this class is not key value coding-compliant for the key @count. with userInfo = {
NSTargetObjectUserInfoKey = "<_PFWeakReference: 0x600000621560>";
NSUnknownUserInfoKey = "@count";
到目前为止,我能理解的是,一个对managedObjectContext的弱引用(上面的错误)使用了错误的键,但我无法找出如何进行调试。
与此问题相关的所有NSManagedObjects似乎都是集合。大多数来自于OneToMany或ManyToMany关系的NSSet。
然后我发现了这个 Apple文档:
然而,我没有看到我所做的任何谓词或CoreData请求当前使用此键。除了@count之外的所有集合运算符都需要在运算符右侧使用键路径。
我重新生成了所有的NSManagedObject模型,并仔细检查它们之间的所有反向关系,但这并没有帮助我摆脱它。
这个应用程序运行得很好,但我找不到任何解决方法来消除这个警告。