我正在使用RestKit 0.27.0,并设法设置我的核心数据堆栈,几乎和RestCits GitHub中的TwitterCoreData示例中一样。RestKit putObject - 它是否应该为我持久化回到Core Data存储?
我也映射了GET/POST请求,这些请求正确地持久化了核心数据中的对象,虽然我在处理PUT请求时遇到了问题。
看来我的PUT请求正在更新服务器上的对象,并且我可以看到它在响应中更新了。然后我去刷新期望实体已经更新的SQLite数据库查看器,但它没有。
以addressLine1为例,它被设置为:“4 Some Address”。然后我将它更新为NSManagedObject上的“4 TEST THIS CHANGE”并将它作为PUT上的对象传递。
我可以看到在日志中执行以下操作:
2017年3月2日15:05:18.006阿尔伯特[41779:1232025] T, restkit.object_mapping:RKMappingOperation.m:748跳过映射 从的keyPath属性值“addressLine1到的keyPath‘addressLine1’ - 值不变(4测试此更改)
它几乎一样,如果因为我已经更新的NSManagedObject的addressLine1值,即RestKit不捡起它作为一个改变?
当我重新登录到我的应用程序时,它执行GET请求,当它获得Object时,它意识到瞬态对象与存储在CoreData中的实体之间存在差异,因此可以更新它。
我找不到任何putObject:文档,可以帮助我了解哪里出错了,所以基于RestKit的最新版本(截至编写时为0.27.0) - 这将是件好事通过引用现有NSManagedObject开始,提供或引导到一个示例,更新其上的属性(属性),然后将其作为参数发送到PUT请求中。我认为RestKit“应该”为我处理Core Data的持久性,就像它在GET和POST请求上一样。