我的代码中我做错了什么?

时间:2009-09-11 05:14:20

标签: objective-c

NSArray  *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *myPlistPath = [documentsDirectory stringByAppendingPathComponent:@"Accounts.plist"];

NSArray  *arr = [NSArray arrayWithContentsOfFile:myPlistPath];

int count = 0; 
for (NSDictionary *dict in arr) { 
      count += dict.count; 
}

return count;

我做错了什么?

上面的代码出现以下错误:程序接收信号:“EXC_BAD_ACCESS”。

2 个答案:

答案 0 :(得分:3)

EXC_BAD_ACCESS通常是内存错误,可能是由错误的地址引起的。

首先在设置后立即打印出pathsdocumentsDirectorymyPListPatharr(地址,而不是内容),看看是否有任何一个已设置为NULL。

答案 1 :(得分:0)

尝试打印myPListPath并验证它所引用的文件是否确实存在且格式正确。如果你问我,可能就在这条线上:

NSArray  *arr = [NSArray arrayWithContentsOfFile:myPlistPath];

出现问题,arr被设置为null。