web-dev-qa-db-ja.com

NSString質問-rangeOfStringメソッド

私は理解できない問題を抱えています。

文字列に対してrangeOfStringメソッドを実行しようとしていますが、文字列が見つからなかったかどうかを判断する方法がわかりません。例えば:

NSRange range = [@"abc" rangeOfString:@"d" options:NSCaseInsensitiveSearch range:NSMakeRange(0,3)];

明らかに、「d」は文字列「abc」に含まれていません。これをできるようにしたい:

if(the range is empty since "d" is not in "abc")
   //do something

これのコードは何ですか?

ありがとう!!

31
CodeGuy

NSStringのドキュメントから

-[NSString rangeOfString]

戻り値

AStringの最初の出現のレシーバーでの位置と長さを与えるNSRange構造。戻り値{NSNotFound、0} aStringが見つからないか空の場合(@ "")。

次のようになります。

if ([@"abc" rangeOfString:@"d"].location == NSNotFound){
  //Do something

Appleが承認した方法です。

編集:

私は本当に悪いタイプミスをして、それを修正しました、ありがとう、Kalle。

72
Jared Pochtar

範囲の長さを確認してください。ゼロ以外の場合、見つかりました。

14
Matt Long