我想使用 RestKit 中的 getObjectFromPath
方法从我的服务器获取数据。我的测试服务器只有 3 条记录。在调用 getObjectFromPath
之后,我将它们分配给 NSMutableArray
以显示在 UITableView
上。
我遵循了 RKMagicalRecord 配置并在本地设置了核心数据。
然而,每次我在模拟器中运行应用程序时,sqlite 数据库中的记录数就这样增长
执行次数 addSQLitePersistentStoreAtPath
: sqlite 中的记录数
- 第一次执行
addSQLitePersistentStoreAtPath
: 0 - 第二次执行
addSQLitePersistentStoreAtPath
: 3 - 第 3 次执行
addSQLitePersistentStoreAtPath
: 6 - 第 4 次执行
addSQLitePersistentStoreAtPath
: 9
我从来没有使用过Magical Record的任何保存方法。当我四处搜索时,getObjectFromPath
方法将进行映射,然后调用 success
回调 block 。在映射过程中,它会自动保存核心数据。
但是我不明白为什么在执行addSQLitePersistentStoreAtPath
之前没有保存。映射后如何禁用 RestKit 中的自动保存?
最佳答案
您无法禁用自动保存。如果您不希望将对象保存到核心数据存储中,请使用普通的 NSObject
子类。
也就是说,您应该使用 Core Data,而您可能缺少的是在映射上设置唯一标识符键 (identificationAttributes
)。如果您没有来自服务器的唯一标识符信息,那么您应该添加它。请参阅this example使用 identificationAttributes
的实体映射。
调用 addSQLitePersistentStoreAtPath
会在第一次调用时创建存储,并在后续调用时加载它。因此,在调用它之前没有存储,因此无法向其中添加任何内容。
关于ios - 休息套件 : addSQLitePersistentStoreAtPath produce extra record,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22959266/