0

我正在尝试学习如何使用属性字符串。此语句导致“EXC_BAD_ACCESS”:

NSDictionary *attDict = @{ NSForegroundColorAttributeName : [UIColor redColor] };

我阅读文档 NSForegroundColorAttributeName 的方式是一个 NSString,所以我然后尝试了这个但得到了同样的崩溃:

NSLog(@"NSForegroundColorAttributeName: %@", NSForegroundColorAttributeName );

还有这个并得到了同样的崩溃:

NSString *fcan = NSForegroundColorAttributeName;

所以看起来任何提到 NSForegroundColorAttributeName 都会导致崩溃。我确实尝试过其他 xxxAttributeNames,它们也做同样的事情。我正在导入 UIKit/UIkit.h。没有编译器警告,也没有运行时消息。我错过了什么?还有什么我需要导入或分配的吗?我的整个概念错了吗?我认为没有任何 Apple 代码示例可以涵盖这一点。

4

1 回答 1

0

使用较新的 NS* 常量可以编译,因为它们的 extern 存在于标头中(如果您使用“最新 iOS”SDK 构建,但如果您在没有 iOS 6 但更低版本的设备上执行此代码,那么您会崩溃描述。

于 2013-02-18T06:00:18.630 回答