我有一个简单的应用程序,基于“实用程序应用程序”模板。它检索受密码保护的XML文件(通过NSXMLParser)。
我想允许用户在“FlipsideView”中设置用户名和密码,我该怎么做呢?
我有基础知识,两个UITextField框,当视图加载时(使用viewWillAppear
方法)将其值设置为固定值,并在视图关闭时设置为NSLog'd( NSLog
仅用于测试,显然是viewWillDisappear
方法)
如何存储数据?我已经看过开发者文档了,好像我应该使用NSUserDefaults
..?
答案 0 :(得分:33)
我同意本。这完全是Keychain的用途。
在任何情况下,我都不会像dbr建议的那样只将密码存储在默认值中。这是非常不安全的。您实际上是在打开密码存储密码。
除了Apple的示例代码,我还推荐Buzz Anderson的Keychain代码: iPhone Keychain Code
答案 1 :(得分:9)
这正是Apple开发Keychain的原因。使用钥匙串,您可以以加密形式存储密码。看一下Apple的GenericKeychain样本。
答案 2 :(得分:4)
Aha,NSUserDefaults似乎有用,并且使用简单,但是丝毫不安全:
password
是UITextField的IBOutlet。
- (void)viewWillAppear:(BOOL)animated
{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *pword = [prefs objectForKey:@"password"];
password.text = uname;
}
- (void)viewWillDisappear:(BOOL)animated{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:password.text forKey:@"password"];
}
密码以纯文本形式存储在plist中,因此其他人可以轻松访问..但这对于存储非敏感设置非常有用。
我最终使用它来存储用户名字段,并使用8月份答案中的SFHFKeychainUtils keychain code存储密码。