2011-03-27 81 views

回答

1

正如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.
+0

问题是,当我分配得分(双值)发生错误无法比拟的类型 – 2011-03-27 11:45:13

+0

尝试将双转换为字符串之前存储分数,当你想要得到它回转换它再次成为一个双... – matteodv 2011-03-27 11:47:47

+0

igot这些错误多次+ SFHFKeychainUtils.o中的[SFHFKeychainUtils storeUsername:andPassword:forServiceName:updateExisting:error:] SFHFKeychainUtils.o中的_kSecClassGenericPassword $ non_lazy_ptr – 2011-03-27 12:10:36

3

如果这是你是在救然后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 :) 
+0

你好谢谢回答,但以这种方式他的分数达到他想要的任何价值。我可以隐藏.plist的密钥值 – 2011-03-27 10:54:19

+0

啊,你从来没有说过安全:)这种方式是最简单的,但如果你想要安全使用@马修的答案,而不是:) – deanWombourne 2011-03-27 11:23:42

+0

钥匙串不会保护用户的数据。尽管访问钥匙串数据的确比访问偏好更多,但它只是为了保护用户的数据(即不知道用户密码的用户)。你也可以使用NSUserDefaults并使用存储在应用程序代码中的密钥对值进行加密。 – 2011-04-06 15:30:58

相关问题