2011-02-03 3 views
2

У меня есть PLIST со следующей структурой:Получить строку из NSDictionary

<?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 со всеми результатами для Key-> имя. Я хотел бы иметь что-то вроде Дублин-Пони-детей-25_thumb, Дублин-Пони-детей-26_thumb, Дублин-Пони-малышей-27_thumb, Дублин-Пони-детей-28_thumb.

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

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

ответ

2

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

NSArray *plistContents = [NSArray arrayWithContentsOfFile:...]; //load the plist into memory 
NSArray *names = [plistContents valueForKey:@"name"]; 
0

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

- (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; 

}

УАК thumbNames теперь можно загружать в новое представление.

Приветствия

Dirk

Смежные вопросы