2016-09-15 147 views
9

我有一个iOS应用程序与RestKit库和CoreData。自Xcode8以来,我可以看到比以前更多的日志,其中一个对我来说没有任何意义。NSManageObjectContext - 类不是密钥编码兼容密钥@count

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模型,并仔细检查了它们之间的所有相反关系,但它并没有帮助我摆脱它。

这个程序运行良好,但我找不到任何解决方案来删除此警告。

+2

我想这不是你做的关键,但它RKManagedObjectStore.m行55. – JulianM

+0

你有没有找到一种方法来摆脱这种警告? –

回答

1

我相信这是固定在PR 2449,已合并为development branch。该PR包含this commit接缝解决问题。

我不确定PR是否已合并到master分支中,因此不确定它是否可以通过窗格获得。但是你可以在你的podfile中指定一个特定的提交,而不是一个版本。所以如果你指定这个:

pod 'RestKit', :git => 'https://github.com/RestKit/RestKit.git', :commit => '9cbba9eb1b490c3c5e2873c8fba8e9c0fec1bf07' 

建议here它应该工作!

但也许那个提交不兼容Swift 3,我不确定。但也许你没有使用斯威夫特3 ...

相关问题