Сохраните настройки в файле и импортируйте значения для инициализации переменных. - PullRequest
0 голосов
/ 03 сентября 2010

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

Файл должен содержать некоторые значения, такие как URL-адрес сервера и т. Д. Это может измениться, но я хочу управлять файлом настроек, а не обновлять исходный код. Например, при обновлении будет заменен только файл настроек.

Как мне это сделать?

NSUserDefaults не предназначен для таких проблем, я думаю. Должен ли я использовать plist или обычный текстовый файл?

Как будет выглядеть доступ к содержимому файла?

Приветствия

Ответы [ 3 ]

1 голос
/ 03 сентября 2010

Похоже, что NSUserDefaults именно то, что вам нужно. Это позволит вам хранить URL-адреса (в виде строк) и другие основные типы переменных.

Как вы думаете, почему NSUserDefaults здесь не является правильным решением?

Дай попробовать! Это простой в использовании и надежный.

0 голосов
/ 03 сентября 2010

Таким образом, решение, которое я буду использовать, заключается в том, что я загружаю plist-файл в качестве значения по умолчанию для моих NSUserDefaults:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"plist"];
NSDictionary *settingsDict = [NSDictionary dictionaryWithContentsOfFile:filePath];
[[NSUserDefaults standardUserDefaults] registerDefaults:settingsDict];
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];

NSString *serverURL = [settings stringForKey:@"ServerURL"];
NSLog(@"%@", serverURL);

Взято из Приложение для iPhone: куда мне положить файл конфигурации?

Так что я буду использовать как plists, так и NSUserDefaults.настройки я определю как глобальную переменную в main.m.Остается одна проблема:

Как отличить пользовательские настройки по умолчанию от системных?

0 голосов
/ 03 сентября 2010

Используйте список. Вы можете загрузить его с помощью -[NSDictionary initWithContentsOfFile:] (вы также можете легко сохранить словарь в plist с помощью -[NSDictionary writeToFile:atomically:], хотя это не похоже на то, что вам нужно это делать).

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