2012-02-07 4 views
0

Что вы считаете правильным способом хранения простой строки имени пользователя в своем приложении, чтобы он появился, когда вы снова открываете приложение? Я читал несколько способов сделать это: основные данные, plist, nsuserdefaults.Сохраните имя пользователя nsstring после выхода приложения

Каковы некоторые из способов, которыми люди используют это, и, если возможно, плюсы и минусы предлагаемого способа?

+1

'NSUserDefaults' –

ответ

1

Основные данные сериализуются в SQLite и имеют больше смысла, когда вы имеете дело со многими объектами и динамически создаете/удаляете их.

Плиссики падают где-то между сложностью Core Data и NSUserDefaults. Они могут обрабатывать данные с некоторой структурой и сохраняются в виде файла в файловой системе.

Поскольку вы просто имеете дело с одной информацией, NSUserDefaults наиболее подходит для вас. Все, что вам нужно сделать, чтобы сохранить строку в:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setObject:userNameString forKey:@"UserName"]; 
[defaults synchronize]; 

Затем, чтобы получить строку:

NSString *userName = [[NSUserDefaults standardUserDefaults] stringForKey:@"UserName"]; 
+0

Спасибо за детали. Определенно звучит как простота информации. Я храню вызовы для NSUserDefaults. Я работал с CoreData, но думал, что это похоже на приведение базыки, чтобы убить муху. Просто хотел получить от вас ответы. –

3

Я думаю, что NSUserDefaults будет правильным выбором здесь. Он предназначен для хранения настроек пользователя по умолчанию, которые вы точно описываете. Кроме того, с вашего кода очень легко получить доступ.

3

NSUserDefaults ОК. Однако, я думаю, что если у вас есть имя пользователя, у вас также есть пароль для входа в систему, не так ли? В таком случае, почему вы не используете Keychain, чтобы сохранить его?

+0

Я не буду хранить пароль. Устройства, скорее всего, будут распространены среди многих людей. Единственная причина, по которой я хотел бы рассмотреть вопрос о сохранении зашифрованного пароля, будет заключаться в том, что следует избегать отсутствия подключения к логину. К счастью, аутентификация веб-сервисов является частью требований. –

+0

, поэтому я думаю, что NSUserDefaults будет наиболее подходящим в вашем случае. Я использовал его несколько раз в аналогичном контексте в приложении, и теперь я не могу сказать, есть ли лучшее решение для того, что вам нужно. – krzymar

1

NSUserDefaults является лучшим (на мой взгляд). Однако вы также можете использовать архивирование, если вы решили не использовать его.

Если вы используете UIDocument, вы можете связать его с облаком, если вы хотите синхронизировать имена пользователей в разных приложениях.

Смежные вопросы