9

6より前のiOSバージョンでのNSAttributedStringの可用性に関する矛盾する情報を見つけました。これは、下位互換性がいくらかある場合に非常に役立つものです。

ここでは、iOS 4の時点で利用可能であると述べています 。iPhoneにNSAttributedStringがないのはなぜですか?

AppleのWebサイトには、iOS 6以降と記載されています:https ://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSAttributedString_Class/Reference/Reference.html

私はそれを私のコードに次のように実装しようとしました:

NSAttributedString *commentString = [[NSAttributedString alloc] initWithString:@"I really love raisins" attributes:@{NSForegroundColorAttributeName: [UIColor blackColor]}];

iOS 6では動作しますが、iOS5またはiOS5.1で実行しようとすると動作しません。以前のバージョンはテストしていません。

古いバージョンに含まれていない機能を使用しようとしていますか?

4

3 に答える 3

14

iOS3.2から出回っています。ただし、UILabel、UIButton、UITextView などの特定の UI コントロール内でそれらを使用する機能は、iOS6 以降でのみ使用できます。CoreText for < 6.0 を使用して引き続き使用できます。

于 2012-11-15T00:24:09.703 に答える
6

NSAttributeStringiOSリファレンスドキュメントによると、このinitWithString:attributes:方法はiOS 3.2以来存在しています。のメソッドがNSAttributedStringiOS 4.0 で追加されました。UIKitカテゴリとして追加されたメソッドはすべてiOS 6.0 で追加されました。

この行の問題:

NSAttributedString *commentString = [[NSAttributedString alloc] initWithString:@"I really love raisins" attributes:@{NSForegroundColorAttributeName: [UIColor blackColor]}];

NSForegroundColorAttributeName定数が iOS 6.0 まで追加されなかったことです。

そのNSAttributedStringため、しばらく前から存在していましたが、6.0 まですべての便利な機能が追加されていませんでした。

于 2012-11-15T00:21:00.650 に答える
1

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSAttributedString_Class/Reference/Reference.html

iOS 6 以降では、属性付き文字列を使用して、書式設定されたテキストをテキスト ビュー、テキスト フィールド、およびその他のコントロールに表示できます。

それはIOS6のみです。クラスは IOS6 より前に使用できましたが、機能は使用できませんでした。したがって、あなたの最終的な仮定は正しいです:)

于 2012-11-15T00:20:53.147 に答える