2009-04-25 5 views
2

В моем приложении у меня есть простой файл ASCII, в котором хранится информация о конфигурации и другая небольшая информация, которую она использует и изменяет. Я хочу скопировать этот файл на iPhone с помощью приложения.iPhone App: Где я могу поместить файл конфигурации?

1) Скажите, пожалуйста, где я должен поместить этот файл (config.txt) в xcode. Должен ли я помещать его в Ресурсы?

2) Как я могу получить к нему доступ в iPhone? Могу ли я использовать

str = [NSString stringWithContentsOfFile:@"config.txt"] 

или мне нужно использовать более полный путь; если да, то что это?

ответ

9

Чтобы сохранить пользовательские настройки, вы можете использовать NSUserDefaults, если приложение может их изменить. Документация: here.

Настройки сохраняются в виде файла Plist, так что вы можете хранить NSDictionary экземпляров, NSArray экземпляров и т.п.

Если вы хотите предварительно заполнить ваш NSUserDefaults с некоторыми настройками, вы можете сделать это с какой-то код, как это одна:

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

Вам нужно поместить файл defaults.plist на папку ресурсов с настройками по умолчанию, и использовать код, указанный выше. Я запускаю этот код из метода +(void)initialize приложения AppDelegate, но вы можете выбрать другое место для его вызова.

+0

Я хочу сохранить некоторые параметры по умолчанию, которые будут выбраны из пользователем. Он может добавить больше вариантов на свой вкус, поскольку он использует приложение. например для приложения для наблюдения за птицами исходными параметрами могут быть «голубь», «воробей» и т. д. Пользователь может добавить других, таких как «орел». Список может стать большим (скажем, 100 записей). Является ли NSUserDefaults хорошим вариантом? – euphoria83

+1

Я бы порекомендовал вам попробовать загрузить большие файлы plist на устройстве (а не симуляторе), чтобы проверить производительность. Если вам требуется больше производительности, вы можете проверить SQLite и сохранить информацию в БД. – pgb

+0

Как создать файл с уже существующими парами ключ-значение, а затем получить доступ к нему с помощью NSUserDefaults? – euphoria83

1

Вы можете поместить его в Ресурсы, да. Чтобы получить файл, то вы можете просто использовать:

[[NSBundle mainBundle] pathForResource:@"config" ofType:@"txt" inDirectory:@""]] 

Могу ли я предложить NSUserDefaults для ваших настроек, однако? Это сэкономит вам много хлопот при чтении и написании.

0

Если nsuserdefaults не соответствует вашим потребностям, вы можете сохранить конфигурационную информацию в файле в каталоге Documents. Если файл не существует при запуске, прочитайте версию, имеющуюся в Ресурсах.

1

И если вы хотите, чтобы извлечь NSUserDefaults, вы можете сделать следующее:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 

// getting a NSString 
NSString *myString = [prefs stringForKey:@"keyToLookupString"]; 

// getting a NSInteger 
NSInteger myInt = [prefs integerForKey:@"integerKey"]; 

// getting a Float 
float myFloat = [prefs floatForKey:@"floatKey"]; 

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

  • Нет связанных вопросов^_^