我刚刚创建了一个核心数据数据模型并添加了一些实体。现在我正在生成NSManagedObject
子类。
在生成的代码中,我发现我的一个属性(数据模型中的类型为“Boolean”)已变为NSNumber
类型的属性!
这不正确,我想。 NSNumber
肯定不是布尔值。为什么不只使用Bool
类型?
然后我认为这可能是Objective-C令人讨厌的事情中的另一个。我认为就像Int
和Double
一样,Bool
无法保存到Core Data中,因此必须使用NSNumber
。我是对的吗?
如何将此NSNumber
转换为Bool
以及如何将Bool
转换为NSNumber
?也许0 =假,1 =真?其他价值怎么样?这根本不是类型安全的......
答案 0 :(得分:1)
对于您的问题$path
,您可以执行以下操作,适用于How to convert this NSNumber to a Bool and how to convert a Bool to an NSNumber?
个对象
NSNumber
并且您可以转换为其他类型,有关详细信息,请查看类引用hear
抱歉延迟, swift version ,
//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];
是的,你是对的...... :)根据@fred doc说,
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)