我有这个代码:
- (BOOL)isConnected { return !!_sessionKey; }
其中_sessionKey之前定义为:
NSString* _sessionKey;
该代码来自于iphone-connect for iphone.
由于我正在通过查看其他人编写的代码来学习Objective-C.喔!用在isConnection函数中似乎对我没用,还是我错过了什么?它有什么作用?
解决方法
喔!将结果转换为YES或NO.
使用!! x是C的一个成语.这个表达式的结果是:
> !! x == 0当x == 0 // x为零时
>!x == 1当x!= 0 // x不为零时
至少在C中,可以使用任何非零表达式作为满足if()或其他条件控制流的条件的值.然而,有时很高兴知道“真实值”由1表示,而不仅仅是“非零”.
在Objective-C中,YES被定义为1而不是“非零”.因此,在Objective-C中,这个C语言变得更加有用.
另一种方法:
> !! x == NO,当x ==否>!x = YES当x!= NO