Загрузка массива из .Plist - PullRequest
       33

Загрузка массива из .Plist

6 голосов
/ 08 августа 2011

Я пытаюсь загрузить свой массив из массива в моем .Plist, но он не работает.

Плист выглядит так:

enter image description here

Это код, который я использую:

NSString *path = [[NSBundle mainBundle]pathForResource:@"DiseasePropertyList" ofType:@"plist"];
NSMutableArray *rootLevel = [[NSMutableArray alloc]initWithContentsOfFile:path];
self.myArray = rootLevel;
[rootLevel release];

Ответы [ 5 ]

9 голосов
/ 08 августа 2011

Попробуй это. Пожалуйста, измените имя файла. Работает нормально.

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

NSString *recentFilePath = [documentsDirectory stringByAppendingPathComponent:@"recent.plist"];
NSArray *history = [NSArray arrayWithContentsOfFile:recentFilePath];
5 голосов
/ 08 августа 2011

Ваш список на самом деле словарь.Массив является объектом этого словаря для ключа «Массив».Вы можете превратить plist в массив в Xcode 4, выбрав «Array» и вырезав (CMD-x), а затем вставив его в пустой plist (CMD v).

2 голосов
/ 02 апреля 2014

Если ваш plist-файл находится в вашем комплекте приложений, проще всего это:

NSArray *myArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"filename_without_extension" ofType:@"plist"]];
2 голосов
/ 08 августа 2011
NSString *pathStr = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [settingsBundlePath stringByAppendingPathComponent:@"yourproject.plist"]; 
NSDictionary *settingsDict = [NSDictionary dictionaryWithContentsOfFile:finalPath];

и просто проверьте описание настроек Dict. Надеюсь, это поможет вам.

0 голосов
/ 07 сентября 2015

Используйте этот метод, он отлично сработал для меня.

NSArray *country= [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"CountryList" ofType:@"plist"]];
...