Instance Method インスタンスメソッド

enumerateSubstringsInRange:options:usingBlock:

Enumerates the substrings of the specified type in the specified range of the string. 文字列のこの指定された範囲の中の指定された型の下位文字列を列挙します。

Declaration 宣言

- (void)enumerateSubstringsInRange:(NSRange)range 
                           options:(NSStringEnumerationOptions)opts 
                        usingBlock:(void (^)(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop))block;

Parameters パラメータ

range

The range within the string to enumerate substrings. 下位文字列を列挙することになる文字列内の範囲。

opts

Options specifying types of substrings and enumeration styles. 下位文字列の型と列挙のやり方を指定しているオプション。

block

The block executed for the enumeration. 列挙に対して実行されるブロック。

The block takes four arguments: このブロックは4つの引数をとります:

substring

The enumerated string. 列挙された文字列。

substringRange

The range of the enumerated string in the receiver. レシーバの中のその列挙された文字列の範囲。

enclosingRange

The range that includes the substring as well as any separator or filler characters that follow. For instance, for lines, enclosingRange contains the line terminators. The enclosingRange for the first string enumerated also contains any characters that occur before the string. Consecutive enclosing ranges are guaranteed not to overlap, and every single character in the enumerated range is included in one and only one enclosing range. 下位文字列だけでなく何らかの分離子またはそれに続く詰めもの文字を含みます。例えば、複数行に対して、enclosingRangeは行終端子を含みます。列挙される最初の文字列に対するenclosingRangeは、またその文字列の前に現れるどんな文字も含みます。連続した囲んでいる範囲は、重ならないことを保証されます、そして列挙された範囲におけるあらゆる単一文字は、ただ1つだけの囲んでいる範囲に含まれます。

stop 中止

A reference to a Boolean value that the block can use to stop the enumeration by setting *stop = YES; it should not touch *stop otherwise. あるブール値への参照、それはブロックが使用して*stop = YESに設定することで列挙を停止できます;それはそれ以外では*stopにさわるべきではありません。

Discussion 議論

If this method is sent to an instance of NSMutableString, mutation (deletion, addition, or change) is allowed, as long as it is within enclosingRange. After a mutation, the enumeration continues with the range immediately following the processed range, after the length of the processed range is adjusted for the mutation. (The enumerator assumes any change in length occurs in the specified range.) このメソッドがNSMutableStringのインスタンスに送られるならば、変化(削除、追加、または変更)は許可されます、それがenclosingRangeの内部にあるうちは。ある変化の後、列挙はその処理された範囲にすぐ続いている範囲で継続します、処理された範囲の長さの後はその変化を考慮して調整されます。(列挙子は、指定された範囲において長さにおける何らかの変化が発生すると仮定します。)

For example, if the block is called with a range starting at location N, and the block deletes all the characters in the supplied range, the next call will also pass N as the index of the range. This is the case even if mutation of the previous range changes the string in such a way that the following substring would have extended to include the already enumerated range. For example, if the string "Hello World" is enumerated via words, and the block changes "Hello " to "Hello", thus forming "HelloWorld", the next enumeration will return "World" rather than "HelloWorld". 例えば、ブロックが位置Nで始まる範囲で呼び出される、そしてブロックが提供された範囲の中の全ての文字を削除するならば、次の呼び出しはまたNを範囲のインデックスとして渡されるでしょう。これは、たとえ以前の範囲の変化がその文字列をそのような方法で変更するとしても、続いている下位文字列が広がることで既に列挙した範囲を含むということが真相です。例えば、文字列 "Hello World" が単語それらによって列挙される、そしてブロックが "Hello " を "Hello" に変える、そうして "HelloWorld" を形成するならば、次の列挙は "World" を返すでしょう、 "HelloWorld" ではなく。

See Also 参照

Finding Characters and Substrings 文字と下位文字列を発見する