1

我有这个 plist 文件

在此处输入图像描述

我需要创建一个包含 plist 中的数组的数组,因此该数组应该具有值 "numbers" & "colors" 。

我试过这段代码但没有用

- (NSString *) dataFilePath {
    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentDirectory = [path objectAtIndex:0];
    return [documentDirectory stringByAppendingPathComponent:@"groups.plist"];
}

- (void) readPlist {
    NSString *path = [self dataFilePath];
    NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
    NSArray *tempArray = [dict objectForKey:@"Root"];
    NSLog(@"%@", tempArray);
}

从 ViewDidLoad 方法调用 readPlist

知道怎么做吗?

4

2 回答 2

0

确保该groups.plist文件存在于 Documents Directory 而不是您的 Bundle Directory 中。

确保dict不是 nil 并且实际上是您期望的字典对象。

你试过[dict objectForKey:@"numbers"]吗?

于 2013-09-07T16:28:09.827 回答
0

代替

NSArray *tempArray = [dict objectForKey:@"Root"];
NSLog(@"%@", tempArray);

采用

NSArray *tempArray = [dict allKeys];
NSLog(@"%@", tempArray);

请注意,数组中元素的顺序未定义,请参阅文档NSDictionary

“Root”只是 Xcode 的一个标签。

于 2013-09-07T16:47:54.957 回答