2

NSStringメソッドのように、次のよう-substringWithRange:-rangeOfString:options:range:述べています。

重要: aRange の一部が文字列の末尾を超えている場合、NSRangeException が発生します。

範囲 (string.length, 0) が文字列の終わりを超えているようです。ただし、[string substringWithRange:NSMakeRange(string.length, 0)]発生させずNSRangeExceptionに空の文字列を返します。したがって、 (string.length, 0) が有効な範囲かどうかはわかりません。

比較すると、 と の両方[string substringWithRange:NSMakeRange(string.length + 1, 0)][string substringWithRange:NSMakeRange(string.length, 1)]NSRangeException が発生します。しかし、 (string.length, 0) が重要なポイントのように見える間、それらは非常に明確に終わりを超えています。

4

2 に答える 2

5

セマンティクスの問題かもしれませんが、 (length, 0) は文字列の末尾にあり、それ超えることはありません。もちろん、(length, 1) は終わりを超えています。

于 2012-10-23T21:56:29.030 に答える
2

0テキストフィールドやテキストビューのようなものであれば、範囲内の長さ (文字列のコンテキストでは) をカーソルの位置と考えることができます。したがって、範囲は(string.length, 0)文字列の最後にテキスト カーソル位置を設定することと同じです。

于 2012-10-23T22:14:23.030 に答える