Получение содержимого списка - PullRequest
2 голосов
/ 02 августа 2011

Как я могу получить содержимое этого списка?

Я немного запутался в отношении различных элементов и способов доступа к ним.

enter image description here

Как получить доступ к этим словарям и словарям в словарях?

Что, если я сначала захочу скопировать эти данные, это значительно увеличит производительность, а не всегда будет считывать данные из списка?

Как я могу получить все эти данные в моем приложении, пройдя через уровни структуры?

Спасибо

Ответы [ 4 ]

10 голосов
/ 02 августа 2011

Самый простой способ прочитать список свойств - использовать удобный метод для NSDictionary (или NSArray, если ваш корневой элемент является массивом) примерно так:

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"FileName" 
                                                     ofType:@"plist"];
NSDictionary* plist = [NSDictionary dictionaryWithContentsOfFile:filePath];

С этого момента файл plist представляет собой обычный словарь.Используйте objectForKey: и т. Д., Чтобы получить значения.Для более быстрого доступа к глубоким дочерним узлам вы можете использовать valueForKeyPath:, например, вот так:

NSString* name = [plist valueForKeyPath:@"mainDictionary.name"];

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

1 голос
/ 02 августа 2011
    use this :
    NSDictionary *dic1 = [[NSDictionary alloc] initWithContentofFile:yourFilePathhere];

// return main dictionary
    NSDictionary *dic2 = [dic1 objectForKey:mainDictionary];
0 голосов
/ 06 мая 2016

код Swift

let filePath:String = NSBundle.mainBundle().pathForResource("infoList_English", ofType: "plist")!
let postDictionary : NSDictionary = NSDictionary(contentsOfFile: filePath)!
print(postDictionary)
0 голосов
/ 02 августа 2011

Вам следует проверить класс NSPropertyListSerialization , который делает синтаксический анализ списков относительно простым.

Вот пример кода: http://iphoneincubator.com/blog/tag/nspropertylistserialization

...