【发布时间】:2017-01-23 12:46:33
【问题描述】:
我有一个带有 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 documentation:
除@count 之外的所有集合运算符都需要在集合运算符右侧有一个键路径。
但是,我看不到任何当前使用此键的谓词或 CoreData 请求。
我重新生成了我所有的 NSManagedObject 模型并仔细检查了它们之间的所有反向关系,但这并没有帮助我摆脱它。
此应用运行良好,但我找不到任何解决方案来消除此警告。
【问题讨论】:
-
我猜这不是你做的关键,而是 RKManagedObjectStore.m 第 55 行。
-
你有没有找到摆脱这个警告的方法?
标签: ios core-data restkit xcode8