我有一个名为“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];

有人知道这可能是什么原因吗?

最佳答案

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

[更新]:为安全起见,请排除该错误,仅在创建字典后再保留一个即可(仅用于测试!),并检查崩溃是否消失。如果不是,则其他变量可能会覆盖myData。设置两个断点,一个在将字典分配给myData的点,另一个在崩溃点之前。检查您是否看到合理的摘要,例如“2个密钥对”。

07-26 09:38
查看更多