これが私がやりたいことです:
NSRange r = NSMakeRange(0,5);
id a = [NSMutableArray a];
[a addObject: r]; // but NSRange is not a NSObject *
ブール値では、次のようなコードを使用します。
[a addObject: [NSNumber numberWithBool: YES]];
または整数で:
[a addObject: [NSNumber numberWithInteger: 3]];
では、NSRange
と同等のものは何ですか?私が本当にしたくないのは、これを実現するためにNSObject
の独自のサブクラスを作成することです。確かに、Appleがすでに提供している方法には方法がありますか?
NSValueの+valueWithRange:
を使用します。範囲構造を取得するには、 property rangeValue
を使用します。
[a addObject:[NSValue valueWithRange:r]];
...
NSRange r = a[4].rangeValue;
[NSValue valueWithRange:r];
そしてそれを元に戻す:
NSRange r = [rangeObject rangeValue];
プロパティリストにNSRange
を格納する必要がある場合は、NSRange
関数を使用してNSString
をNSStringFromRange
に変換することもできます。次に、NSRangeFromString
関数を使用して、その文字列を範囲に戻すことができます。
もう1つのオプションは、次にそれらをどのように使用するかによって、NSIndexSet
にこれらの範囲を追加することです。