gpt4 book ai didi

swift - Core Data 生成一个 NSManagedObject 子类,其属性为 NSNumber 类型,但它是一个 Bool

转载 作者:行者123 更新时间:2023-11-30 10:03:55 25 4
gpt4 key购买 nike

我刚刚创建了一个 Core Data 数据模型并添加了一些实体。现在我正在生成 NSManagedObject子类。

在生成的代码中,我发现我的一个属性,其数据模型中类型为“Boolean”的属性,已经变成了 NSNumber 类型的属性!

我认为这是不正确的。安NSNumber当然不是 bool 值。为什么不直接使用 Bool类型?

然后我想这可能是 Objective-C 的又一个烦人的事情了。我认为就像 IntDouble ,一个Bool无法保存到核心数据中,因此必须使用 NSNumber 。我说得对吗?

如何转换此NSNumberBool以及如何转换 BoolNSNumber ?也许 0 = 假,1 = 真?其他值呢?这根本不是类型安全的...

最佳答案

对于您的问题如何将此 NSNumber 转换为 Bool 以及如何将 Bool 转换为 NSNumber? 对于 NSNumber 对象,您可以执行如下操作

//convert bool to number 
NSNumber *boolInNumber = [NSNumber numberWithBool:YES]; //or NO

//get back, convert number to bool
NSNumber *aNum = [NSNumber numberWithBool:YES]; //get the NSNumber instance
BOOL numberInBool = [aNum boolValue];

并且您可以转换为其他类型,有关更多信息,请查看类引用 hear

对于延迟,以及swift版本,深表歉意,

  var numInBool:NSNumber? //is a nsnumber instance
numInBool = NSNumber(bool: true) //get number from bool (number in bool)

var boolInNum:Bool? //it is boolean
boolInNum = numInBool!.boolValue //get bool from number (bool from number)

是的,你是对的...:) 正如@fred doc所说,

let numInBool =     NSNumber(bool: true) 
let boolInNum = numInBool.boolValue

关于swift - Core Data 生成一个 NSManagedObject 子类,其属性为 NSNumber 类型,但它是一个 Bool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37114461/

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