访问NSDictionary的值时应用程序崩溃但访问其密钥时没有崩溃?

时间:2011-07-20 14:00:57

标签: iphone ios nsdictionary asihttprequest

我有一个名为“myData”的NSDictionary对象,我正试图从UITableViewDelegate方法“didSelectRowAtIndexPath”访问它。

我可以很好地执行这些操作:

if(myData == nil) { /* it doesn't print here, so it's not nil */ }
NSLog(@" * Keys: %@", [myData allKeys]); // Outputs all of the keys.

但是,如果我尝试执行任何这些操作,应用程序崩溃时不会出现任何警告,错误或输出:

[myData objectForKey:@"akey"];
[myData allValues];

有人知道可能导致这种情况的原因吗?

1 个答案:

答案 0 :(得分:1)

听起来像myData是不包含有效的引用。您是否放弃它或忘记在阅读后保留它?

[更新]:为了安全起见并排除这个,只需在创建字典后再保留一次(仅用于测试!)并检查崩溃是否消失。如果没有,也许其他一些变量会覆盖你的myData。设置两个断点,一个在字典分配给myData的点,另一个在崩溃点之前。检查您是否看到合理的摘要,例如“2键对”。