2015-05-03 37 views
0

IOS newb構建一個應用程序與網站一起工作。最終,我想保持應用程序和後臺在網站上同步。ios/xcode/core-data:存儲和檢索唯一標識符

照片使用物品的ID保存在網站上。對於應用程序,我還想用與該項目鏈接的唯一編號保存照片。

在網站上,每個項目的id就是MYSQL表格中自動遞增的數字。

我的理解是在Core Data中自動增量是不可能的,但它確實爲每個管理對象都創建了唯一的標識符。

如何在創建該項目的時候在覈心數據數據庫中獲取並存儲該號碼以供日後檢索?

或者有人發現了一種方法來在覈心數據中自動遞增,以給出可用於存儲照片的項目編號。對於由應用程序創建的照片以及通過網站創建的照片,應該有相似的命名方案。

+0

您可以爲照片創建一個唯一的名稱並保存。使用類似於:設備ID,日期,設備平臺等。 – OMGHaveFun

回答

4

沒有用於在Core Data中創建自動遞增ID的「內置」解決方案。 您應該認識到的一件重要事情是Core Data是一個對象圖而不是關係數據庫。這對了解如何使用Core Data處理設計非常重要。

是的,核心數據確實以GUID的形式爲對象創建唯一標識符 - 所以它不是一個數字,而是32個十六進制數字(Globally unigue identifier)。

您可以編寫一個方法來獲取實體序列中的下一個數字,但Core Data不會爲您執行此操作。

你可能會發現這個問題的信息有用:Set auto increment in Core data iOS。我會不是嘗試使用NSManagedObjectID。此值可以更改。

我的建議是你允許MySQL數據庫分配ID的,只需將該ID存儲在覈心數據對象的數字屬性中。對於源自應用程序的項目,將id屬性保留爲空,直到它已發送到MySQL數據庫以進行持久化。然後,檢索數據庫分配給它的Id並將其設置爲Core Data對象的屬性。

+0

我喜歡這個想法。然而,除了新項目的id之外,我還在項目的圖片名稱,與項目相關的文件等內容中使用了id。我想我必須爲這些圖片創建一些臨時名稱直到他們可以使用與服務器的命名方案一致的服務刪除來重命名。 – user1904273