我有一个名为“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 个 key 对”。
关于iphone - 应用程序在访问 NSDictionary 的值时崩溃但在访问其键时不崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6763198/