为什么这会导致字符串stmt崩溃?
问题描述:
我在学习如何使用属性字符串。这种说法引起了“EXC_BAD_ACCESS”:为什么这会导致字符串stmt崩溃?
NSDictionary *attDict = @{ NSForegroundColorAttributeName : [UIColor redColor] };
我阅读文档NSForegroundColorAttributeName是一个NSString的方式,所以后来我试过,但得到了同样的崩溃:
NSLog(@"NSForegroundColorAttributeName: %@", NSForegroundColorAttributeName);
而且这并得到了死机一样:
NSString *fcan = NSForegroundColorAttributeName;
所以看起来NSForegroundColorAttributeName提及任何导致系统崩溃。我确实尝试了其他的xxxAttributeNames,他们也做了同样的事情。我正在导入UIKit/UIkit.h。没有编译器警告,也没有运行时间消息。我错过了什么?还有什么我需要导入或分配?我有错整个概念吗?我不认为有任何Apple代码样本可以涵盖这一点。
答
使用较新的NS *常量编译是因为它们的extern存在于头文件中(如果您使用“最新的iOS”SDK构建,但如果您在iOS 6以下的设备上执行此代码,得到你描述的崩溃。
我添加了:#import但仍然是相同的崩溃。 –
RobertL
2013-02-13 01:57:12