Objective-C语法问题

Gar*_*tet 1 syntax cocoa objective-c nsstring

刚刚在NSString中搜索一个字符或单词进行了一些研究,我遇到了这个代码片段(就像一个魅力):

return [sourceString rangeOfString:searchString].location != NSNotFound;
Run Code Online (Sandbox Code Playgroud)

我是否认为上述代码在功能上与以下代码完全相同:

NSRange range = [sourceString rangeOfString:searchString];
if (range.location == NSNotFound)
    return NSNotFound;
else
    return range.location;
Run Code Online (Sandbox Code Playgroud)

显然第一个片段更清晰,但我不清楚!= NSNotFound.有人可以向我解释一下吗?

Tom*_*ing 9

!=运算符计算为一个布尔值,所以它等同于:

NSRange range = [sourceString rangeOfString:searchString];
if (range.location == NSNotFound)
    return NO;
else
    return YES;
Run Code Online (Sandbox Code Playgroud)

这与以下相同:

NSRange range = [sourceString rangeOfString:searchString];
BOOL didNotFind = (range.location == NSNotFound);
return !didNotFind;
Run Code Online (Sandbox Code Playgroud)