pList в папке документов - нужно с проектом - PullRequest
2 голосов
/ 24 августа 2011

В настоящее время я могу получить доступ к своему списку pList только в том случае, если он находится в папке пользователя / документов, как я могу вместо этого сделать часть проекта pList (я использую Xcode 4), я использую командную строку для проверки теория, но я хотел бы включить его в приложение. Нужно ли добавить его в сборку?

//=================GET FILE PATH FOR PLIST
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //1  Create a list of paths.
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"mypList.plist"]; //3

NSFileManager *fileManager = [NSFileManager defaultManager];

if (![fileManager fileExistsAtPath: path])
{
    NSString *bundle = [[NSBundle mainBundle] pathForResource:@"mypList" ofType:@"plist"]; //5

    [fileManager copyItemAtPath:bundle toPath: path error:&error];   }
}


 //==================READ PLIST
NSMutableDictionary *savedStock = [[NSMutableDictionary alloc] initWithContentsOfFile: path];

NSLog(@"%@", savedStock);

[savedStock release];    

Ответы [ 2 ]

1 голос
/ 24 августа 2011

Если вы просто хотите прочитать его в своем приложении, добавьте его в проект, и тогда он будет частью пакета (так что вы сможете найти его в коде независимо от того, где запущен файл .app).

[[NSBundle mainBundle] bundlePath];

должно указывать вам примерно в правильном направлении ...

Если вы хотите написать обратно, вы должны заставить приложение проверить его наличие в папке библиотеки приложений.(user / Library / your_application_name - в библиотеках OSX есть методы для нахождения папки библиотеки), если она не существует, загрузите ее из пакета и после выхода / выхода / сохранения / изменения и т. д. запишите ее обратно в соответствующую библиотеку приложенийпапка.

Это также может помочь ...

NSString *libraryFolderPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
1 голос
/ 24 августа 2011

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

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