2011-02-03 45 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所有结果键 - >名称。 我想要有像都柏林小马-25_thumb,都柏林小马-26_thumb,都柏林-Pony-kids-27_thumb,都柏林-Pony-kids-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; 

}

的VAR thumbNames现在我可以加载到一个新的观点。

干杯

德克