Objective c 在不使用点语法的情况下反转布尔属性
在这行代码中,我正在反转Objective c 在不使用点语法的情况下反转布尔属性,objective-c,syntax,declared-property,Objective C,Syntax,Declared Property,在这行代码中,我正在反转BOOL值: someObject.boolValue = ![someObject boolValue]; 如何用“纯”Objective-C语法重写这一行,而不使用点语法?[someObject setBoolValue:![someObject boolValue][someObject setBoolValue:![someObject boolValue]使用 [someObject setBoolValue:!([someObject boolValue]
BOOL
值:
someObject.boolValue = ![someObject boolValue];
如何用“纯”Objective-C语法重写这一行,而不使用点语法?
[someObject setBoolValue:![someObject boolValue]代码>[someObject setBoolValue:![someObject boolValue]代码>使用
[someObject setBoolValue:!([someObject boolValue])];
使用
始终使用NSNumber以避免布尔值设置为非布尔值(大于1)
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]];
}
始终使用NSNumber以避免布尔值设置为非布尔值(大于1)
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]];
}
点语法没有错。仅在内部转换为以下答案。别犹豫,谢谢你,ACB,我知道。这只是我个人的兴趣以防万一(来自AppleDoc):“点语法纯粹是访问器方法调用的方便包装器。使用点语法时,仍然使用getter和setter方法访问或更改属性。”点语法没有任何错误。仅在内部转换为以下答案。别犹豫,谢谢你,ACB,我知道。这只是我个人的兴趣以防万一(来自AppleDoc):“点语法纯粹是访问器方法调用的方便包装。使用点语法时,仍然使用getter和setter方法访问或更改属性。”