回答
正如deanWombourne說,你可以使用NSUserDefaults的來存儲這些數據,但它是不是很安全。如果你不想存儲這些數據,你可以看看Buzz Andersen的SFHFKeychainUtils將它們存儲在iPhone Keychain中。
首先,將SFHFKeychainUtils文件複製到您的項目中。點擊SFHFKeychainUtils.m並點擊獲取信息。轉到目標標籤並檢查目標附近的框是否已被選中。如果沒有,請檢查它。按住Control鍵並點擊您的Framework文件夾,然後選擇Add Existing Framework。找到Security.framework並將其添加到您的項目中。還請檢查通過爲SFHFKeychainUtils.m執行相同的過程將此框架添加到您的目標。現在在你想使用這段代碼的地方打開你的實現文件,並添加到頂部#import "SFHFKeychainUtils.h"
。
這是一個關於如何使用此代碼一個小例子:如果用戶有一個越獄的iPhone,他可以訪問com.domainname.app.plist和更改
// to store your data
NSError *error = nil;
[SFHFKeychainUtils storeUsername:kName andPassword:name forServiceName:kStoredName updateExisting:YES error:&error];
[SFHFKeychainUtils storeUsername:kScore andPassword:score forServiceName:kStoredScore updateExisting:YES error:&error];
// to get them back
NSString *name = [SFHFKeychainUtils getPasswordForUsername:kName andServiceName:kScoredName error:&error];
double score = [SFHFKeychainUtils getPasswordForUsername:kScore andServiceName:kScoredScore error:&error];
// kName, kScore, kStoredName, kStoredScore are defined key but you can use also strings with @"your string here".
// It is important that when you store and get back a value, username and serviceName must be the same.
如果這是你是在救然後NSUserDefaults應該罰款
// To store
[[NSUserDefaults standardUserDefaults] setObject:name forKey:@"name"];
[[NSUserDefaults standardUserDefaults] setDouble:score forKey:@"score"];
// To read back in
NSString *name = [[NSUserDefaults standardUserDefualts] objectForKey:@"name"];
double score = [[NSUserDefaults standardUserDefaults] doubleForKey:@"score"];
// Don't forget that your name is autoreleased - if you want to keep it, set it to a retained
// property or retain it yourself :)
你好謝謝回答,但以這種方式他的分數達到他想要的任何價值。我可以隱藏.plist的密鑰值 – 2011-03-27 10:54:19
啊,你從來沒有說過安全:)這種方式是最簡單的,但如果你想要安全使用@馬修的答案,而不是:) – deanWombourne 2011-03-27 11:23:42
鑰匙串不會保護用戶的數據。儘管訪問鑰匙串數據的確比訪問偏好更多,但它只是爲了保護用戶的數據(即不知道用戶密碼的用戶)。你也可以使用NSUserDefaults並使用存儲在應用程序代碼中的密鑰對值進行加密。 – 2011-04-06 15:30:58
- 1. 確保用戶名不是保留字的最佳方式是什麼?
- 2. 保存遊戲得分的最佳方式是什麼?
- 3. 什麼是存儲Windows服務的用戶名和密碼的最佳方式?
- 4. 保存和加載變量的最佳方式是什麼?
- 5. 用戶名密碼使用API的最佳方式是什麼?
- 6. 訪問用戶名字的最佳方式是什麼?
- 7. 存儲用戶權限的最佳方式是什麼?
- 8. 保存RichText(WYSIWYG輸出)的最佳方式是什麼?
- 9. 什麼是保存ArrayList內容的最佳方式?
- 10. 在MySQL中保存KML的最佳方式是什麼?
- 11. 什麼是保存遊戲狀態的最佳方式?
- 12. 將數據保存到文件的最佳方式是什麼?
- 13. 在flex中保存用戶登錄名和密碼的最佳方式是什麼?
- 14. 什麼是使用PHP和MySQL存儲用戶圖像的最佳方式?
- 15. 分發Lua和庫的最佳方式是什麼?
- 16. 什麼是醃製和儲存鹽的最佳方式?
- 17. 實體框架4:添加和保存實體的最佳方式是什麼?
- 18. 在Android中保存和恢復MapView的最佳方式是什麼?
- 19. 保存和恢復控制命令的最佳方式是什麼
- 20. 保護Flex-BlazeDS應用程序的最佳方式是什麼?
- 21. 獲取當前用戶的SID的最佳方式是什麼?
- 22. 什麼是跨瀏覽器最小高度的最佳和有效的方式?
- 23. 什麼是存儲對AD組的引用的最佳方式?
- 24. 驗證用戶上傳文件的最佳方式是什麼?
- 25. 什麼是給用戶提供反饋的最佳方式
- 26. 用戶控件「包裝」HTML的最佳方式是什麼?
- 27. 允許用戶更改模板的最佳方式是什麼?
- 28. 消毒用戶輸入的最佳方式是什麼?
- 29. 廚師從用戶獲取UID的最佳方式是什麼?
- 30. 管理網站用戶照片的最佳方式是什麼?
問題是,當我分配得分(雙值)發生錯誤無法比擬的類型 – 2011-03-27 11:45:13
嘗試將雙轉換爲字符串之前存儲分數,當你想要得到它迴轉換它再次成爲一個雙... – matteodv 2011-03-27 11:47:47
igot這些錯誤多次+ SFHFKeychainUtils.o中的[SFHFKeychainUtils storeUsername:andPassword:forServiceName:updateExisting:error:] SFHFKeychainUtils.o中的_kSecClassGenericPassword $ non_lazy_ptr – 2011-03-27 12:10:36