我在我的代码中做错了啥?
Posted
技术标签:
【中文标题】我在我的代码中做错了啥?【英文标题】:What am I doing wrong in my code?我在我的代码中做错了什么? 【发布时间】:2009-09-11 05:14:20 【问题描述】: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”。
【问题讨论】:
什么时候收到信号?在哪一行?你有没有在调试器中单步执行代码?我猜paths
是空的。
【参考方案1】:
EXC_BAD_ACCESS
通常是内存故障,可能是地址错误。
在设置paths
、documentsDirectory
、myPListPath
和arr
(地址,而不是内容)后立即打印出来,看看它们中的任何一个是否已设置为 NULL。
【讨论】:
【参考方案2】:尝试打印出 myPListPath 并验证它所引用的文件确实存在并且格式正确。如果你问我,很可能就在这条线上:
NSArray *arr = [NSArray arrayWithContentsOfFile:myPlistPath];
出了点问题,arr
被设置为 null。
【讨论】:
以上是关于我在我的代码中做错了啥?的主要内容,如果未能解决你的问题,请参考以下文章