2014-04-15 90 views

回答

0

沒有,因爲

  • 不能在類別擴展現有的方法。您可以繼承NSEntityDescription以擴展該方法,但這不是一個好主意,因爲...
  • 這是錯誤的同步時間。此方法創建一個新實例,但不分配任何屬性值。因此,除了「存在新對象」之外,您沒有要同步的數據。即使您確定在單獨的線程上進行網絡調用,您也沒有有用的信息可以發送。
  • 這不會幫助您將更改服務器同步到您的應用程序。
  • 在許多情況下,應用程序創建新對象,但不保存它們(例如,如果用戶點擊「取消」按鈕)。如果你使用這種方法,你已經發送了一個新的對象到你不想要的服務器。

有許多框架和付費服務有助於以某種方式同步Core Data。哪個更好(如果有的話)實際上取決於你想要完成的任務 - 將數據同步到服務器上的用戶帳戶,或者在多個iOS設備之間同步數據,或者其他。

如果你編寫自己的同步碼(這將是很難得到正確)常用的方法是觀察NSManagedObjectContextObjectsDidChangeNotificationNSManagedObjectContextDidSaveNotificationNSManagedObjectContextWillSaveNotification,或那些超過一個的組合。只要您有傳出的更改發送到您的服務器,它們就會通知您。使用您的服務器提供的任何API從服務器導入更改。