I have this code:
- (BOOL)isConnected {
    return !!_sessionKey;
}
where _sessionKey is defined earlier as:
NSString* _sessionKey;
the code comes from the facebook-connect for iphone.
Since I am learning Objective-C by looking at code written by other people. The !! used in the isConnection function seems 开发者_StackOverflowuseless to me, or am I missing something? What does it do?
The !! converts the result to either YES or NO.
Using !!x is an idiom from C.  The result of this expression is:
- !!x == 0when- x == 0 // x is zero
- !!x == 1when- x != 0 // x is non-zero
At least in C, you can use any non-zero expression as a value which satisfies the condition of an if () or other conditional control flow.  However, sometimes it is nice to know that the "true value" is represented by 1 rather than merely "non-zero".
In Objective-C, YES is defined as 1 rather than as "non-zero".  Thus, in Objective-C, this C idiom becomes more useful.
Another way of putting it:
- !!x == NOwhen- x == NO
- !!x == YESwhen- x != NO
It means "not not".
In this case, the first ! could be interpreted as "doesn't exist", so it means if (not doesn't exist sessionKey).
It's basically a short way to say
return (_sessionKey != nil). 
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论