回答
正如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. jQuery mobile - 保存用户输入的最佳方式是什么?
- 2. 什么是存储本地球员高分的最佳方式
- 3. 什么是存储高分的最佳方式?
- 4. 确保用户名不是保留字的最佳方式是什么?
- 5. 分析Feed时,本地保存的最佳方式是什么?
- 6. 保存游戏得分的最佳方式是什么?
- 7. 什么是存储Windows服务的用户名和密码的最佳方式?
- 8. 保存和加载变量的最佳方式是什么?
- 9. 什么是存储主机名和端口的最佳方式?
- 10. 用户名密码使用API的最佳方式是什么?
- 11. 什么是别名和方法名称的最佳方式
- 12. 什么是使用Firebase保存Java Enums的最佳方式
- 13. 访问用户名字的最佳方式是什么?
- 14. 在DocumentDB中分隔租户和主机名的最佳方式是什么?
- 15. 存储用户权限的最佳方式是什么?
- 16. 用这个SQL语句按用户名分组的最佳方式是什么?
- 17. 什么是保存用户界面对象的最佳方式iOS
- 18. 什么是在android中保存数据的最佳和最合适的方式?
- 19. 将数据保存到文件的最佳方式是什么?
- 20. 在ASP.NET中保存UICulture的最佳方式是什么?
- 21. 在MySQL中保存KML的最佳方式是什么?
- 22. 保存排序到sql的最佳方式是什么?
- 23. 保存RichText(WYSIWYG输出)的最佳方式是什么?
- 24. 什么是保存/加载Windows窗体的最佳方式ToolStripMenuItem
- 25. 什么是保存游戏状态的最佳方式?
- 26. 什么是远程保存图片的最佳方式?
- 27. 在sql server中保存视频的最佳方式是什么?
- 28. 保存表格中表格的最佳方式是什么?
- 29. 在android中保存数据的最佳方式是什么?
- 30. 什么是保存ArrayList内容的最佳方式?
问题是,当我分配得分(双值)发生错误无法比拟的类型 – 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