在我的实现文件中,我有一个 NSString* 的静态二维 c 样式数组,定义为:
static NSString* TheColorArray[][3] = {
[RedType] = {@"red", @"blah", @"YES"},
[BlueType] = {@"blue", @"yadda", @"YES"},
.....
}
有问题的方法访问数组,如下所示:
-(NSString*)value:(NSInteger)value {
return TheColorArray[value][0];
}
这一切似乎在大约 99% 的时间里都能正常工作......但是当它无法工作时,它总是会失败EXC_BAD_ACCESS - KERN_INVALID_ADDRESS at 0x11
我已经验证我的value
参数没有超出数组的范围。地址似乎很奇怪0x11
......这意味着数组尚未初始化。
那么这里发生了什么?对于 ARC 和 c 风格的数组,我需要注意一些“问题”吗?