我想以一種方式組織遊戲永久性數據,使屬於玩家的所有數據都進入其各自的文件夾。我想知道是否可以依靠播放器ID在我的應用中創建獨特的文件夾。建議在應用包內使用Game Center Player ID作爲文件夾名稱?
1
A
回答
2
不同於別人的解釋,文件根本不鼓勵的選擇的玩家ID作爲摺疊名字。實際上,玩家ID的格式不能保證,並且將來可能包含不允許包含在路徑名中的字符。如今,玩家ID的第二個字符是冒號(:
),這似乎是一個包含路徑名稱的壞字符。該文件明確指出,不能對玩家ID的格式進行假設。
0
在Apple documentation,它是關於每個玩家唯一地由播放器標識字符串標識真的清楚。
只是不對字符串的格式或長度作任何假設。
可以肯定,使其不與任何其他文件夾衝突,任何奇怪的巧合,我會把您的播放器的文件夾在自己制定的一個子文件夾。
1
Apple建議您確實使用播放器ID來達到此目的。
除了與遊戲中心的交互使用播放器標識符,你的遊戲也應該使用時,它也希望在本地存儲有關特定玩家數據的播放器標識。例如,如果您的遊戲存儲數據以跟蹤玩家的進度(例如在設備上,在您自己的服務器上或在iCloud上),請使用玩家標識符來區分在同一設備上玩的多個玩家。這樣,如果不同的玩家在設備上簽名,您可以立即通過顯示該玩家特有的內容來個性化體驗。
在你想有一個字符串,它是保證是唯一不管其他任何情況下,你可以使用這個:
NSString *guid = [[NSProcessInfo processInfo] globallyUniqueString];
這可以被用來唯一命名文件夾,文件,資產,任何東西,你可以放心,它不會與一些用戶或以往的任何其他用戶發生衝突造成[來源]
1
您可以間接使用它。 在Apple Doc中,「標識符字符串是在玩家的帳戶首次創建時創建的,永遠不會更改」「玩家標識符是跟蹤特定玩家的唯一可靠方式。 因爲播放器ID始終是一個字符串。您可以使用散列或其他算法將playerid字符串轉換爲安全格式。
相關問題
- 1. 使用Game Center驗證GKLocalPlayer
- 2. Game Center Player iOS 10中的照片
- 3. 使用Swift設置Game Center?
- 4. 使用文件夾名稱作爲前綴重命名文件
- 5. 使用當前時間創建文件夾作爲名稱
- 6. 我們可以在maven中使用文件夾名稱作爲工件ID嗎?
- 7. 將Game Center應用到cocos2d 2.1項目
- 8. iOS Game Center Group
- 9. Game Center displayName錯誤?
- 10. 使用Cocos2d-x打開Game Center UI
- 11. Game Center vs OpenFeint
- 12. Game Center facebook like
- 13. Apple Game Center api
- 14. 使用推文ID作爲文件名
- 15. 如何在Game Center中實現排名
- 16. 有沒有辦法爲iOS應用程序禁用Game Center?
- 17. IOS Game Center Achievement Upload
- 18. 卡在Game Center沙盒中?
- 19. 軟件包名稱所需的建議
- 20. AWS雅典娜:使用「文件夾」的名稱作爲分區
- 21. 使用GUID作爲文件夾名稱+拆分
- 22. 使用父文件夾/目錄名稱作爲變量重命名文件
- 23. 使用Bash使用文件夾名稱創建陣列
- 24. 使用批處理文件創建文件夾名稱
- 25. 使用bat創建一個文件夾名稱的文件
- 26. 使用屬性文件中的名稱創建文件夾
- 27. 是否有可能在iOS中獲得Game Center ID或帳戶?
- 28. 使用文件夾名稱在powershell中重命名文件
- 29. 將文件夾內的文件批量重命名爲父文件夾名稱
- 30. OpenFeint,Game Center和多個用戶
文檔不鼓勵的文件夾名稱中使用的玩家ID的,但本地存儲的其他方式,如'NSUserDefaults'文件或鍵/值存儲例如裏面你自己的數據結構。玩家ID不保證製作有效的文件夾名稱。 –
很高興知道,我會傾向於全局唯一的字符串,因爲我可以對它進行更多的測試,因此對它的操作感覺更加舒適,而我必須假設playerID的工作原理類似。我是否錯過文檔中有關不使用它作爲文件夾名稱的特定行,或僅僅是經歷了談話? FWIW,guid的文件夾名稱非常出色(和無法理解)。 –