Получить строку NSDictionary - PullRequest
2 голосов
/ 04 февраля 2011

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

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <dict>
        <key>height</key>
        <real>2075</real>
        <key>name</key>
        <string>Dublin-Pony-kids-25_thumb</string>
        <key>width</key>
        <real>1558</real>
    </dict>
    <dict>
        <key>height</key>
        <real>2219</real>
        <key>name</key>
        <string>Dublin-Pony-kids-26_thumb</string>
        <key>width</key>
        <real>1751</real>
    </dict>
    <dict>
        <key>height</key>
        <real>2532</real>
        <key>name</key>
        <string>Dublin-Pony-kids-27_thumb</string>
        <key>width</key>
        <real>1732</real>
    </dict>
    <dict>
        <key>height</key>
        <real>2430</real>
        <key>name</key>
        <string>Dublin-Pony-kids-28_thumb</string>
        <key>width</key>
        <real>1730</real>
    </dict>
</array>
</plist>

Интересно, как получить строку NSString со всеми результатами для ключа-> имя. Я хотел бы иметь что-то вроде Dublin-Pony-kids-25_thumb, Dublin-Pony-kids-26_thumb, Dublin-Pony-kids-27_thumb, Дублин-Pony-kids-28_thumb.

Я могу прочитать это как (NSString *)imageNameAtIndex:(NSUInteger)index { но это только возвращает одно значение. Я хочу, чтобы все значения ключа-> name были указаны как NSString.

Я новичок в этом, пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 04 февраля 2011

Если вы загрузите plist в массив (через +[NSArray arrayWithContentsOfFile:...]), то у вас должно получиться:

NSArray *plistContents = [NSArray arrayWithContentsOfFile:...]; //load the plist into memory
NSArray *names = [plistContents valueForKey:@"name"];
0 голосов
/ 05 февраля 2011

спасибо за ответ. Это дало мне правильный путь. Я зову свои пальцы так, как это знаю.

- (NSArray *)thumbNames {
//For the thumbs we need a different array than for the images
//Load the plist
NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"ImageData" ofType:@"plist"];
NSArray *plistContents = [NSArray arrayWithContentsOfFile:plistPath]; //load the plist into memory
NSArray *thumbNames = [plistContents valueForKey:@"name"];


return thumbNames;

}

var thumbNames, которые я теперь могу загрузить в новом представлении.

Приветствия

Dirk

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