1

このコード行では、BOOL値を反転しています。

 someObject.boolValue = ![someObject boolValue];

この行を「純粋な」Objective-C 構文でドット構文なしで書き直すにはどうすればよいですか?

4

3 に答える 3

3

使用する

[someObject setBoolValue:!([someObject boolValue])];
于 2012-12-10T16:58:06.390 に答える
2

[someObject setBoolValue:![someObject boolValue]];

于 2012-12-10T16:57:20.293 に答える
1

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]];
}
于 2012-12-10T19:45:40.413 に答える