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 に答える