программирование iPhone, загрузка данных из списка, доступ к ним - PullRequest
1 голос
/ 15 августа 2010

У меня есть список в следующем виде:

Корень (массив) ---> элемент 1 (словарь) ----> Sch (строка) ---> Имя (строка) --> цена (число) ----> пункт 2 (словарь) ----> ..... такой же, как элемент 1

Как я могу получить доступ к каждой строке (элемент1 до ...)а его ребенок (щ, имя и т. д.)?По одному?

Я использую:

NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"Data.plist"];
NSDictionary *plistData = [[NSDictionary dictionaryWithContentsOfFile:finalPath] retain];   

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

Что я пытаюсь сделать, так это то, что у меня есть сообщение NSString *, что я хочу сделать, это найти весь список соответствия и найти весь элемент. Любое предложение?

Ответы [ 2 ]

2 голосов
/ 15 августа 2010

Когда вы инициализируете коллекцию из plist, тип является объектом корневого уровня.Поэтому вы бы не инициализировали словарь, а массив, например, так:

NSArray *plistData = [[NSArray arrayWithContentsOfFile:finalPath] retain];

Тогда вы бы получили к нему доступ следующим образом:

NSString *sch; 
NSString *name;
NSString *price;
for (NSDictionary *aDict in plistData) {
    sch = [aDict objectAtKey:"Sch"];
    name = [aDict objectAtKey:"Name"];
    price = [aDict objectAtKey:"price"];
    //.. do whatever
}
1 голос
/ 06 февраля 2011

Здесь - это ссылка на обсуждение, которое предоставило очень хороший пример того, как получить доступ к вашим данным и какой тип схем хранения будет более выгодным при определенных обстоятельствах. Решение @ TechZen нацелено, я просто подумал, что этот вопрос добавит дополнительный ресурс. Надеюсь, это поможет!

...