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" ではなく。