在这行代码中,我正在反转BOOL
值:
someObject.boolValue = ![someObject boolValue];
如何在“纯”Objective-C语法中重写此行,不使用点语法?
答案 0 :(得分:3)
使用
[someObject setBoolValue:!([someObject boolValue])];
答案 1 :(得分:2)
[someObject setBoolValue:![someObject boolValue]];
答案 2 :(得分:1)
始终使用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]];
}