2014-04-09 50 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會在第一次調用商店時創建商店,並在隨後的調用中加載商店。所以,在你叫它之前,沒有商店可以添加任何東西。