我在我的代码中做错了啥?

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 通常是内存故障,可能是地址错误。

在设置pathsdocumentsDirectorymyPListPatharr(地址,而不是内容)后立即打印出来,看看它们中的任何一个是否已设置为 NULL。

【讨论】:

【参考方案2】:

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

NSArray  *arr = [NSArray arrayWithContentsOfFile:myPlistPath];

出了点问题,arr 被设置为 null。

【讨论】:

以上是关于我在我的代码中做错了啥?的主要内容,如果未能解决你的问题,请参考以下文章

我在 Swinject 中做错了啥?

我在proguard规则中做错了啥?

Batch-API:我在这段代码中做错了啥?

没有为该类定义 Getter。我在这里做错了啥?

我在这个 PLSQL 函数中做错了啥?

我在 Laravel 8 Cors 中做错了啥配置?