从Android开发未来我使用SharedPreferences存储用户名和密码登录到使用OutputStreamWriter和HttpURLConnection的服务器。 现在iOS中我使用NSMutableURLRequest发送用户名和密码。 有什么在iOS中存储像iOS的 SharedPreferences的用户名和密码? 采取记住,这是所以它需要是安全的敏感数据。
Answer 1:
就在这里。 用户名和密码应使用Keychain.Keychain默认情况下,加密的苹果被保存。 https://developer.apple.com/library/ios/documentation/Security/Conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html
另外,看看这个教程对如何在iOS中使用钥匙扣。 http://maniacdev.com/2011/07/tutorial-how-to-use-the-ios-keychain-to-store-names-and-passwords
要保存其他用户的喜好,使用NSUserDefaults的。
Answer 2:
Android的SharedPreferences的对手是NSUserDefaults的IOS。 在你的情况我建议你使用钥匙扣这就是保护您的数据
如果你正在向iOS开发我强烈建议使用的CocoaPods
使用它,我已经找到了一个框架,使简单的工作与钥匙串SSKeychain
Answer 3:
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
[defaults setObject:self.numbers forKey:@"userName"];
[defaults synchronize];
U可以使用NSUserDefault
在iOS上的用户名密码存储为Android这样SharedPreference
。 如果您想为用户名密码加密更安全,然后存储起来。
NSString *userName=[defaults ObjectforKey:@"userName"];
这将retrive价值。
在存储值NsUserDefault
会被你的应用程序只而不是在监狱里破iOS设备的情况下访问
Answer 4:
你不把它们存储在共享偏好,而是使用钥匙串,这是加密
KeychainItemWrapper* keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"KeychainTest" accessGroup:nil];
[keychain setObject:(__bridge id)kSecAttrAccessibleWhenUnlocked forKey:(__bridge id)kSecAttrAccessible];
NSLog(@"%@, %@", [keychain objectForKey:(__bridge id)kSecAttrAccount], [keychain objectForKey:(__bridge id)kSecValueData]);
[keychain setObject:@"example@email.com" forKey:(__bridge id)kSecAttrAccount];
[keychain setObject:@"MySuperSecretPassword" forKey:(__bridge id)kSecValueData];
NSLog(@"%@, %@", [keychain objectForKey:(__bridge id)kSecAttrAccount], [keychain objectForKey:(__bridge id)kSecValueData]);
https://developer.apple.com/library/ios/samplecode/GenericKeychain/Introduction/Intro.html (该KeychainItemWrapper需要-fno-objc弧,因为它不是专为ARC)
http://b2cloud.com.au/how-to-guides/using-the-keychain-to-store-passwords-on-ios