从plist读到NSArray

时间:2012-07-11 12:42:46

标签: objective-c ios nsarray

我正在尝试阅读,我还需要写一个plist。

到目前为止,我试图简单地阅读。

中的内容

这是我的appSettings.plist:

enter image description here

NSBundle* bundle = [NSBundle mainBundle];
NSString* plistPath = [bundle pathForResource:@"appSettings" ofType:@"plist"];
NSDictionary *tmp = [[NSDictionary alloc] initWithContentsOfFile:plistPath];

我试着这样做:

NSArray *mruItems = [[NSArray alloc] initWithArray:[tmp objectForKey:@"lastSearches"]];

但它会引发错误。我在[tmp objectForKey:@“lastSearches”]类型上做的检查显示这不是NSArray ......

如何将内容读入我的NSArray?

谢谢!

(我希望有关于写作的一些信息)

2 个答案:

答案 0 :(得分:2)

如果你看一下上面的截图,你会发现很明显" lastSearches"是一个字典,而不是一个列表。您可以尝试将其中的类型切换为Array类型,它应该适合您。

另一个解决方案是迭代该字典中的键:

NSDictionary *lastSearches = [tmp objectForKey:@"lastSearches"];
for (NSString *key in lastSearches.allKeys)
{
  NSString *value = [lastSearches objectForKey:key];
}

请注意,这不是有序的,您可能需要在迭代之前进行排序。

答案 1 :(得分:1)

确实,它不是数组而是字典(看你的图像)。