Search code examples
iphonensrange

NSRange : incorrect behavior. Why?


range.location should be 0. Am i right ?

NSRange range;
range = [@"beer" rangeOfString:@"beer and vodka"];
if (range.location== NSNotFound)
{
    NSLog(@"Why?");
}

Solution

  • Because you search for a string "beer and vodka" in "beer" string - obviously that longer string is not present in the shorter one, so you get expected output. What you need should probably be vice versa:

    NSRange range = [@"beer and vodka" rangeOfString:@"beer"];
    if (range.location == NSNotFound)
    {
        NSLog(@"Why?");
    }