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”。
答案 0 :(得分:3)
EXC_BAD_ACCESS
通常是内存错误,可能是由错误的地址引起的。
首先在设置后立即打印出paths
,documentsDirectory
,myPListPath
和arr
(地址,而不是内容),看看是否有任何一个已设置为NULL。
答案 1 :(得分:0)
尝试打印myPListPath并验证它所引用的文件是否确实存在且格式正确。如果你问我,可能就在这条线上:
NSArray *arr = [NSArray arrayWithContentsOfFile:myPlistPath];
出现问题,arr
被设置为null。