您好,有人可以帮我如何保存登录页面中输入的登录详细信息当点击提交按钮时,应该保存在文本文件中,我还想检索保存在文本文件中的登录详细信息....请建议我一些解决方案
答案 0 :(得分:3)
您不应该在UserDefaults中保存私人数据。请改用KeyChain。
答案 1 :(得分:2)
您应该将其存储在钥匙串中。您可以在项目中包含this class, SFHFKeychainUtils
并使用以下方法:
+ (NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error;
+ (void) storeUsername: (NSString *) username andPassword: (NSString *) password forServiceName: (NSString *) serviceName updateExisting: (BOOL) updateExisting error: (NSError **) error;
此处有更多详情:http://log.scifihifi.com/post/55837387/simple-iphone-keychain-code
答案 2 :(得分:1)
这样做确实不安全。 NSUserDefaults或核心数据更加强大;您还可以考虑加密功能。但是如果必须保存到文本文件,则可以使用NSString的[writeToFile:atomically:encoding:error][1]
方法。您将路径传递给文件,BOOL指定是否应该以原子方式编写,指定文本编码的编码常量,以及指向NSError的指针(如果需要错误详细信息)。
您可以使用输入文本字段的text
属性来获取文本。
答案 3 :(得分:0)
如果你想不安全地做,那么你去吧;
// Saving the login details
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
NSUserDefaults *defaults1=[NSUserDefaults standardUserDefaults];
NSString* Username = UsernameBox.text;
[defaults setObject:Username forKey:@"UsernameKey"];
NSString* temp = [defaults objectForKey:@"[UsernameKey"];
NSString* Password = PasswordBox.text;
[defaults1 setObject:Password forKey:@"PasswordKey"];
NSString* temp1 = [defaults1 objectForKey:@"[PasswordKey"];
[defaults synchronize];
[defaults1 synchronize];
// Loading the login details
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
NSUserDefaults *defaults1=[NSUserDefaults standardUserDefaults];
NSString* Username = UsernameBox.text;
NSString* temp = [defaults objectForKey:@"UsernameKey"];
UsernameBox.text = temp;
NSLog(@"Loaded Username: %@", temp); // Recommend removing for security after testing
NSString* Password = PasswordBox.text;
NSString* temp1 = [defaults1 objectForKey:@"PasswordKey"];
PasswordBox.text = temp1;
NSLog(@"Loaded Password: %@", temp1); // Recommend removing for security after testing
...或
如果您希望它更加安全,我建议使用加密功能,就像提到的@ Inspire48一样。
谢谢,
詹姆斯