2013-12-16 54 views
0

我无法读取plist文件中的数据。我没有像我期待的那样获得在控制台中打印的titleString。我究竟做错了什么? enter image description here无法读取plist文件

NSString *path = [[NSBundle mainBundle] pathForResource:@"Events" ofType:@"plist"]; 
    NSDictionary *dictPri = [[NSMutableDictionary alloc]initWithContentsOfFile:path]; 
    NSMutableArray *arrEvents = [[NSMutableArray alloc] initWithArray:[dictPri valueForKey:@"Root"]]; 

    for (NSDictionary *dict in arrEvents) 
    { 
     NSString *titleString = nil; 
     NSString *date = nil; 
     titleString = [NSString stringWithFormat:@"%@",[dict valueForKey:@"Title"]]; 
     date = [NSString stringWithFormat:@"%@",[dict valueForKey:@"Date"]]; 

     NSLog(@"Title String: %@", titleString); 
    } 

回答

2

你的主要元素(根)是词典 - 不是阵列 - 通过单击旁边的类型更改它的plist。

另外你的代码有问题 - 你永远不会按名称访问“Root”元素 - 它是默认的顶级对象。考虑取出不需要的额外数组初始化。

固定码:

NSString *path = [[NSBundle mainBundle] pathForResource:@"Events" ofType:@"plist"]; 
NSArray* arrEvents = [NSArray arrayWithContentsOfFile:path]; 

for (NSDictionary *dict in arrEvents) 
{ 
    NSString *titleString = [NSString stringWithFormat:@"%@",[dict objectForKey:@"Title"]]; 
    NSString *date = [NSString stringWithFormat:@"%@",[dict objectForKey:@"Date"]]; 

    NSLog(@"Title String: %@", titleString); 
} 
+0

余留根作为字典和根内建立一个数组,并添加了项目的该阵列。谢谢! – raginggoat