NSArrayのメソッドについても同様の質問を見てきましindexOfObjectIdenticalTo:
たが、単純に質問すると簡単な答えが得られることを願っています。プログラムで作成された文字列を検索するのは無意味ですか?
NSArray* theArray = [[NSArray alloc] initWithObjects:@"John", nil];
NSString* searchString1 = @"John";
NSString* stringComponent = @"Jo";
NSString* searchString2 = [stringComponent stringByAppendingFormat:@"hn"];
BOOL testContains1 = [theArray containsObject:searchString1];
int testIndex1 = [theArray indexOfObjectIdenticalTo:searchString1];
BOOL testContains2 = [theArray containsObject:searchString2];
int testIndex2 = [theArray indexOfObjectIdenticalTo:searchString2];
上記の例ではtestContains1
、testContains2
両方が同じ値、つまりを返しますtrue
。しかしtestIndex1
、testIndex2
違います。testIndex1
期待どおりにインデックス0で同一のオブジェクトが見つかったため、は0ですが、残念ながらtestIndex2
2147483647(NSNotFound)です。