59

これが私がやりたいことです:

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がすでに提供しているものに方法はありますか?

4

4 に答える 4

141

NSValueのを使用します+valueWithRange:。範囲構造を取得するには、プロパティrangeValueを使用します。

[a addObject:[NSValue valueWithRange:r]];
...

NSRange r = a[4].rangeValue;
于 2010-10-22T17:05:41.527 に答える
13
[NSValue valueWithRange:r];

そしてそれを取り戻す:

NSRange r = [rangeObject rangeValue];
于 2010-10-22T17:05:35.603 に答える
5

NSRangeプロパティリストにを格納する必要がある場合は、関数を使用してをにNSRange変換することもできます。次に、関数を使用してその文字列を範囲に戻すことができます。NSStringNSStringFromRangeNSRangeFromString

于 2010-10-22T17:06:28.367 に答える
4

もう1つのオプションはNSIndexSet、次にそれらをどのように使用するかによって、これらの範囲をに追加することです。

于 2010-10-22T23:25:41.757 に答える