2015-02-09 152 views
1

我正在用Spritekit開發一款遊戲,現在我需要跟蹤用戶的高分。有各種不同的存儲方法,最簡單的方法是NSUserDefaults,但推薦用於首選項。用鑰匙扣節省分數

然而,我發現這個鑰匙扣包裝趨向於節約串用鑰匙:

https://github.com/jrendel/SwiftKeychainWrapper

你覺得這是很好用嗎?我的想法是在保存它之前將得分(Integer)轉換爲一個字符串,並在檢索高分時,將其從String轉換爲Int。你認爲這是一個好主意嗎?

回答

1

我可以看到的關鍵鏈的主要優點是,當應用程序被刪除且不能輕易更改時,條目仍然存在。 UserDefaults將與您的應用Id綁定,並在應用刪除時丟失:除非您使用了全局域。

您可以使用CloudKit鍵/值存儲實現跨設備高分,將數​​據存儲在雲中。這將是更多的工作,你需要添加衝突解決。

根據你高分的認真程度,你應該考慮與Game Center整合?理想的情況下,如果你想得到高分等,堅持跨越多個設備。

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/GameKit_Guide/LeaderBoards/LeaderBoards.html

+0

什麼是可以/應當使用鑰匙鏈作爲存儲方法時要存儲的數據的優選量?謝謝! – Whirlwind 2015-02-09 11:00:16

+1

我想說你應該只用它來輸入密碼,虛擬硬幣,高分或你想分享的小信息(icloud keychain),並防止通過其他機制輕鬆訪問。此外,對於重新安裝應用程序而不是應用程序重新啓動的情況,您可能需要使用這些項目。任何更大的應該進入文件系統恕我直言 – 2015-02-09 11:44:46

+0

感謝您的反應羅裏。是的,我將整合Gamecenter,但我將首先在本地保存高分,然後再與Gamecenter同步。不是這樣嗎?因爲如果沒有網絡連接,應用程序必須將其存儲在本地。 – ah786 2015-02-09 14:23:10