2015-12-21 82 views
0

我的對象從應用程序,與syncronize服務器每隔5分鐘。用戶可以在網上查看他的物品。我產生了他下面的鏈接:美麗核心數據對象ID

"http://mydomain/items/\(self.appDelegate.UUID.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!)/\(items.objectID.URIRepresentation().absoluteString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!)" 

UUID - 這是設備或iCloud的關鍵。

所以鏈接的樣子:

http://mydomain/items/15FDA6B3-C51A-4057-8F98-0143981CC5C8/x-coredata://60DD8665-3136-4CF0-9FD3-FF9164FC7327/Items/p1

但我能切x-coredata://60DD8665-3136-4CF0-9FD3-FF9164FC7327這樣:/Items/p1。它會是獨一無二的嗎?

或者任何其他的想法如何讓更好看的產品ID。

+0

很明顯,你可以依靠的對象ID(如果他們是唯一)和不公開的內部核心數據的ID – sage444

+2

你爲什麼不建立自己的ID並分配一個新的給你創建的每個實例? – Wain

+0

事實上,NSManagedObject的objectID如果還沒有通過保存創建它的上下文來保存,它可能會發生變化。依靠自己的標識符屬性而不是核心數據。 –

回答

0

也許是更好的創造自己的ID,但我發現另一種解決方案:

let id = Item.objectID.URIRepresentation().absoluteString.componentsSeparatedByString("/p")[1] 

而結果將是整數值。