Где хранить файл .plist в приложении iphone - PullRequest
5 голосов
/ 04 июня 2009

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

в моем xcode, где создать этот файл .plist и как получить к нему доступ ???

спасибо,

Ответы [ 7 ]

6 голосов
/ 04 июня 2009

Чтобы сохранить plist-файл в вашем каталоге Documents, вам нужно включить plist-файл в ваше приложение, а затем при первом запуске скопировать его в каталог Documents.

Чтобы получить доступ к файлу в каталоге Documents:

NSArray *paths = 
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                                    NSUserDomainMask, YES); 
NSString *documentsPath = [paths objectAtIndex:0]; 

// <Application Home>/Documents/foo.plist 
NSString *fooPath = 
[documentsPath stringByAppendingPathComponent:@“foo.plist”];
6 голосов
/ 04 июня 2009

Вы бы положили в папку ресурсов. Затем используйте что-то вроде этого для загрузки:

NSString *file = [[NSBundle mainBundle] pathForResource:@"TwitterUsers" ofType:@"plist"];
NSArray *Props = [[NSArray alloc] initWithContentsOfFile:file];

Где TwitterUsers - это имя вашего plist-файла.

Если ваш plist-файл содержит ключи и значения, вы бы сделали вторую строку NSDictionary вместо NSArray.

3 голосов
/ 04 июня 2009

РЕДАКТИРОВАТЬ Только что произошедшие со мной "конфигурационные переменные" могут быть неизменными. Если это так, не обращайте внимания на этот ответ.

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

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

Если вам необходимо сохранить и изменить свой собственный .plist, сохраните его в каталоге Documents, где ваше приложение должно хранить все, что оно загружает, создает и т. Д. См. Управление файлами и данными и NSFileManager .

3 голосов
/ 04 июня 2009

Я бы порекомендовал сохранить его в каталоге Resources в комплекте приложений, но вы можете просто перетащить его в окно проекта. Метод NSBundle pathForResource:ofType: должен дать вам путь, по которому вы можете перейти к NSDictionary s dictionaryWithContentsOfFile:.

Редактировать: Извините, пример полного кода (думал, что я уже скопировал и вставил):

NSString *path = [[NSBundle mainBundle] pathForResource:@"MyConfig" ofType:@"plist"];
NSDictionary *myConfig = [NSDictionary dictionaryWithContentsOfFile:path];
1 голос
/ 05 июня 2009

По умолчанию, если вы включили plist в проект где-либо (в разделе «Ресурсы» или иным образом), XCode скопирует его в комплект приложений, куда вы сможете попасть с помощью вышеупомянутого вызова pathForResource. Просто подумал, что упомяну это, поскольку вы можете предпочесть группу, в которой у вас ее нет в ресурсах ...

0 голосов
/ 23 сентября 2009
  1. Почему это делает пакет недействительным?

  2. Будет ли этот файл plist в папке ресурсов сохранен в iTunes как файлы в папке документов?

0 голосов
/ 04 июня 2009

вы можете найти пример книги sqlite ..... файл данных silte был сохранен в директории 'Document' .... вы будете знать, что prcess

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