Сохранение настроек приложения iPhone в приложении - PullRequest
21 голосов
/ 09 февраля 2010

В моем приложении для iPhone есть несколько настроек, которые пользователи могут часто менять. Я хотел бы знать, есть ли какой-либо предложенный способ обработки таких настроек (чтение и сохранение их). На сайтах Apple я нашел только учебник по интеграции настроек вашего приложения с приложением «Настройки» ( ссылка ), но я не хочу, чтобы пользователь выходил из приложения, чтобы он мог просто изменить параметр.

Существует ли какой-либо механизм по умолчанию для обработки таких настроек в самом приложении, или мне нужно реализовать собственное решение?

Ответы [ 3 ]

43 голосов
/ 09 февраля 2010

Лучший и самый простой способ сохранить настройки в iPhone - через NSUserDefaults. Избавляет вас от необходимости иметь дело с файловой системой, списками или чем-то подобным.

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSString *storedVal = @"This is what you want to save";
NSString *key = @"storedVal"; // the key for the data

[defaults setObject:storedVal forKey:key];
[defaults synchronize]; // this method is optional


// Get the results out
NSString *results = [defaults stringForKey:key];

Вот что Apple говорит о типах объектов, которые вы можете хранить в настройках по умолчанию

Объект по умолчанию должен быть свойством список, то есть экземпляр (или для Коллекции комбинация экземпляров из): NSData, NSString, NSNumber, NSDate, NSArray или NSDictionary. Если Вы хотите хранить любой другой тип объект, вы должны обычно архивировать это создать экземпляр NSData.

Есть еще несколько предостережений, например, если вы храните NSDictionary, значения ключа должны быть строками.

4 голосов
/ 01 июля 2010

Если вы ищете пользовательский интерфейс для редактирования настроек из приложения, посмотрите InAppSettingsKit на http://www.inappsettingskit.com

0 голосов
/ 09 февраля 2010

Прочтите Руководство по работе с файлами и сетями из iPhone Developer Connection. Он объяснит, как вы получаете путь для различных предопределенных местоположений в изолированной программной среде приложения. Я бы порекомендовал вам использовать NSDictionary для хранения ваших настроек, которые можно легко сохранить в файловой системе и преобразовать в plist.

...