如果我有一个像这样设置的 plist

Key           Type         Value
Root          Array
 Item 0       Dictionary
 -Title       String       Part One
 -Description String       Welcome to part one. Have fun
 Item 1       Dictionary
 -Title       String       Part Two
 -Description String       Welcome to part two. Fun too.
 Item 2       Dictionary
 -Title       String       Part Three
 -Description String       Welcome to part three. It's free
 Item 3       Dictionary
 -Title       String       Part Four
 -Description String       It's part four. No more

我将如何逐步将所有标题放在一个数组中,并将所有描述放在另一个数组中?

最佳答案

Oooooooo 这就是键值编码的魅力所在。

NSArray * plistContents = [NSArray arrayWithContentsOfFile:pathToPlist];
NSArray * titles = [plistContents valueForKey:@"Title"];
NSArray * descriptions = [plistContents valueForKey:@"Description"];

这里的 secret 是对数组调用 valueForKey: 会返回一个新的对象数组,其中包含对数组中的每个事物调用 valueForKey: 的结果。并且在字典上调用 valueForKey: 可以等效于使用 objectForKey: (如果您使用的键是键值对中的键)。有关更多信息,请参阅 the documentation

一个警告:当你开始看到奇怪的结果时,使用“描述”键可能会导致你撕掉一些头发,因为一个拼写错误,你实际上会开始调用每个字典上的 -description 方法(这不是你想要的想)。

关于iphone - 逐步通过 plist 获取信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2858535/

10-12 03:35