このコード行では、BOOL
値を反転しています。
someObject.boolValue = ![someObject boolValue];
この行を「純粋な」Objective-C 構文でドット構文なしで書き直すにはどうすればよいですか?
このコード行では、BOOL
値を反転しています。
someObject.boolValue = ![someObject boolValue];
この行を「純粋な」Objective-C 構文でドット構文なしで書き直すにはどうすればよいですか?
使用する
[someObject setBoolValue:!([someObject boolValue])];
[someObject setBoolValue:![someObject boolValue]];
BOOLに非ブール(1より大きい)値が設定されないように、常にNSNumberを使用してください。
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]];
}