RestKit:addSQLitePersistentStoreAtPath产生额外的记录

时间:2014-04-09 10:07:51

标签: ios objective-c core-data restkit restkit-0.20

我想使用RestKit中的getObjectFromPath方法从我的服务器获取数据。我的测试服务器只有3条记录。致电getObjectFromPath后,我将其分配到NSMutableArray以显示在UITableView上。

我按照RKMagicalRecord配置并在本地设置Core数据。

但是,每当我在模拟器中运行应用程序时,sqlite数据库中的记录数就会像这样增长

执行时间addSQLitePersistentStoreAtPath:sqlite中的记录数

  • 第一次执行addSQLitePersistentStoreAtPath:0
  • 第二次执行addSQLitePersistentStoreAtPath:3
  • 第3次执行addSQLitePersistentStoreAtPath:6
  • 第4次执行addSQLitePersistentStoreAtPath:9

我从未使用魔法记录中的任何保存方法。当我在谷歌周围时,getObjectFromPath方法将执行映射,然后调用success回调块。在映射期间,它将自动保存核心数据。

但我不明白为什么在执行addSQLitePersistentStoreAtPath之前它没有保存。如何在映射后禁用RestKit中的自动保存?

1 个答案:

答案 0 :(得分:1)

您无法禁用自动保存。如果您不希望将对象保存到Core Data存储中,则使用纯NSObject子类。

也就是说,你应该使用核心数据,而你所缺少的可能是在映射(identificationAttributes)上设置唯一标识符键。如果您没有来自服务器的唯一标识符信息,那么您应该添加它。请参阅this example实体映射identificationAttributes

调用addSQLitePersistentStoreAtPath会在第一次调用时创建存储,并在后续调用中加载它。所以,在你打电话之前没有商店,因此无法添加任何东西。