我有一个设置如下的plist:
正如您所看到的,我在字典中有一个字典:每个父节点都有子节点,这些节点本身就是一个字典,其中包含与之关联的图像和徽章。
我坚持的部分是如何将其转换为NSOutlineView的数据源..
目前我有这个:
NSString *paths = [[NSBundle mainBundle] pathForResource:@"navigationItems" ofType:@"plist"];
navigationItems = [[NSMutableDictionary alloc] initWithContentsOfFile:paths];
NSArray *parents = [navigationItems allKeys];
for (NSString *parent in parents) {
SourceListItem *parentItem = [SourceListItem itemWithTitle:parent identifier:parent];
NSArray *children = [parent allKeys];
NSLog(@"%@", children);
}
然后我要用子进行for循环,但问题是父进程是NSString而你不能循环遍历NSString ..
那我该怎么办?
非常感谢
答案 0 :(得分:1)
如果我正确阅读您的代码,parent
是包含您的plist中儿童词典的字典的键。在访问嵌入式子字典数据之前,您需要获取parent
在navigationItems
中引用的字典。例如:
NSString *paths = [[NSBundle mainBundle] pathForResource:@"navigationItems" ofType:@"plist"];
navigationItems = [[NSMutableDictionary alloc] initWithContentsOfFile:paths];
NSArray *parents = [navigationItems allKeys];
for (NSString *parent in parents) {
SourceListItem *parentItem = [SourceListItem itemWithTitle:parent identifier:parent];
NSDictionary *parentData = [navigationItems objectForKey:parent];
NSArray *children = [parentData allKeys];
NSLog(@"%@", children);
}
请记住在循环键时,以相同的方式访问每个孩子的字典数据。