2014-04-09 21 views
0

我想使用RestKit的getObjectFromPath方法从我的服务器获取数据。我的测试服务器只有3个记录。在致电getObjectFromPath后,我将它们分配到NSMutableArray以显示在UITableView上。RestKit:addSQLitePersistentStoreAtPath会产生额外的记录

我遵循RKMagicalRecord配置并在本地设置Core数据。

然而,每次我在模拟器中运行的应用程序,记录在SQLite数据库数量的增加这样的

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

  • 第1次号执行addSQLitePersistentStoreAtPath:0
  • 第二时间执行addSQLitePersistentStoreAtPath:3
  • 第三时间执行addSQLitePersistentStoreAtPath:6
  • 第四次执行addSQLitePersistentStoreAtPath:9

我从来没有使用来自神奇记录任何储蓄方法。当我谷歌周围,getObjectFromPath方法将做一个映射,然后调用success回调块。在映射期间,它将自动保存核心数据。

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

回答

1

您不能禁用自动保存。如果您不想将对象保存到Core Data存储中,请使用普通的NSObject子类。

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

调用addSQLitePersistentStoreAtPath会在第一次调用商店时创建商店,并在随后的调用中加载商店。所以,在你叫它之前,没有商店可以添加任何东西。