在这行代码中,我正在反转一个BOOL
值:
someObject.boolValue = ![someObject boolValue];
如何在没有点语法的情况下用“纯”Objective-C 语法重写这一行?
在这行代码中,我正在反转一个BOOL
值:
someObject.boolValue = ![someObject boolValue];
如何在没有点语法的情况下用“纯”Objective-C 语法重写这一行?
采用
[someObject setBoolValue:!([someObject boolValue])];
[someObject setBoolValue:![someObject boolValue]];
始终使用 NSNumber 来避免您的 BOOL 设置为非布尔(大于一个)值。
NSNumber * currValue = [NSNumber numberWithBOOL:[someObject boolValue]];
NSNumber * yesNum = [NSNumber numberWithBOOL:YES];
NSNumber * noNum = [NSNumber numberWithBOOL:NO];
if( NSOrderedSame == [currValue compare:yesNum] ){
[someObject setBoolValue:[noNum boolValue]];
}
else if( NSOrderedSame == [currValue compare:noNum] ){
[someObject setBoolValue:[yesNum boolValue]];
}
else {
// Set default
[someObject setBoolValue:[yesNum boolValue]];
}