2010-02-09 6 views
21

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

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

ответ

43

Самый лучший и простой способ сохранить настройки в iPhone - NSUserDefaults. Не позволяет вам иметь дело с файловой системой или plists или любой другой материал.

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, по типам объектов, которые можно хранить в Умолчаниях

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

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

+2

Можно ли хранить значения других типов, то 'NSString' как числа или даты? – RaYell

+0

yup, я обновил свой ответ – kubi

+0

Спасибо, парень, это тот ответ, который я хотел услышать. – RaYell

0

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

4

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

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