iOS indexOfObjectIdenticalTo: not working for strings
===

I've seen similar questions about NSArray's `indexOfObjectIdenticalTo:` method, but I'm hoping my asking it simply will yield simple answers.  Is it useless for searching for strings that are programmatically built?

    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];

In the example above, `testContains1` and `testContains2` both return the same value, which is `true`.  But `testIndex1` and `testIndex2` differ; `testIndex1` is 0 because it found an identical object at index 0 as expected, but unfortunately `testIndex2` is 2147483647 (NSNotFound).