iPhone: сохранить пользовательские данные в plist, SQLite или cookie? - PullRequest
5 голосов
/ 12 мая 2011

Мое приложение (как и большинство) будет использовать множество удаленных сервисов ... поэтому, когда пользователь аутентифицирует себя, мне нужно сохранить его имя пользователя и пароль (или какой-либо флаг), чтобы им не пришлось аутентифицироваться во всем приложении.

Где лучше / быстрее / проще всего хранить эти данные пользователя?

Ответы [ 3 ]

11 голосов
/ 12 мая 2011

Вы можете сохранить имя пользователя и URL-адрес сервера с помощью NSUserDefaults, но службы Keychain - это лучшая идея, если вы храните пароль. Это часть инфраструктуры безопасности на основе C, и есть отличный класс-оболочка SFHFKeychainUtils , чтобы предоставить ему Objective-C API.

Для сохранения:

NSString *username = @"myname";
NSString *password = @"mypassword";
NSURL *serverURL = [NSURL URLWithString:@"http://www.google.com"];

[SFHFKeychainUtils storeUsername:username andPassword:password forServiceName:[serverURL absoluteString] updateExisting:YES error:&error]

Для восстановления:

NSString *passwordFromKeychain = [SFHFKeychainUtils getPasswordForUsername:username andServiceName:[serverURL absoluteString] error:&error];
8 голосов
/ 12 мая 2011

NSUserDefaults

Сохранить как это:

[[NSUserDefaults standardUserDefaults] setObject:username    forKey:@"username"];
[[NSUserDefaults standardUserDefaults] setObject:password forKey:@"password"];
[[NSUserDefaults standardUserDefaults] synchronize];

Получить как это:

    NSString *username = [[NSUserDefaults standardUserDefaults] stringForKey:@"username"];
    NSString *password = [[NSUserDefaults standardUserDefaults] stringForKey:@"password"];
5 голосов
/ 12 мая 2011

Хранение защищенных данных в незащищенном файле (пользовательские настройки по умолчанию) обычно не очень хорошая идея.Загляните в Keychain Services, который шифрует конфиденциальную информацию для входа и прочее.

http://developer.apple.com/library/mac/#documentation/Security/Conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...