gpt4 book ai didi

objective-c - 否定存储在 NSNumber 中的 boolean 值

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:23 26 4
gpt4 key购买 nike

我有一个托管对象,它的 NSNumber 只是一个 boolean 值。当用户单击一个按钮时,我想切换它。

self.item.completed = [NSNumber numberWithBool:![self.item.completed boolValue]];

是否有我缺少的更简洁(或者可能只是更紧凑)的方式?

最佳答案

对于产生否定值的过程,您几乎无能为力,但您可以通过将代码隐藏在类别中,使调用它的语法看起来不那么庞大:

@interface NSNumber ( NegateBoolean )
-(NSNumber)negateBool;
@end

@implementation NSNumber ( NegateBoolean )
-(NSNumber)negateBool{
return [NSNumber numberWithBool:![self boolValue]];
}
@end

现在您可以像这样使用新方法了:

self.item.completed = [self.item.completed negateBool];

您还可以设置一个带有反转的NSArray,并按如下方式使用它:

NSArray *inversions = [NSArray arrayWithObjects:[NSNumber numberWithBool:YES], [NSNumber numberWithBool:NO], nil];
self.item.completed = [inversions objectAtIndex:[self.item.completed boolValue]];

关于objective-c - 否定存储在 NSNumber 中的 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11801405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com