在 swift 中将 NSManagedObject 属性 从 num 转换为 Bool
Casting NSManagedObject property from num to Bool in swift
我知道这个问题已被问过很多次,但解决方案对我不起作用。我有以下 NSManaged
对象 class:
@NSManaged var cellColor: AnyObject
@NSManaged var des: String
@NSManaged var name: String
@NSManaged var switcher: NSNumber
并且在加载托管对象时尝试将此值作为布尔值分配给 var 时,出现错误。这是将值分配给 var 的示例:
func loadData(){
var appDel = UIApplication.sharedApplication().delegate as AppDelegate
var context = appDel.managedObjectContext!
var request = NSFetchRequest(entityName: "Row")
var result:NSArray = context.executeFetchRequest(request, error: nil)!
if result.count > 0 {
for i in result{
var name = i.name as String
var des = i.des as String
var color = i.cellColor as UIColor
var switcher:Bool{
get{
return i.switcher == NSNumber(bool: true)
//the problem happens here
但是,当我尝试以这种方式进行转换的简单示例时,效果很好。
如何解决??
我觉得是这样的:
for i in results {
var name = i.name as String
var des = i.des as String
var color = i.cellColor as UIColor
var switcher: Bool {
return Bool(i.switcher)
}
}
虽然没有测试。
我知道这个问题已被问过很多次,但解决方案对我不起作用。我有以下 NSManaged
对象 class:
@NSManaged var cellColor: AnyObject
@NSManaged var des: String
@NSManaged var name: String
@NSManaged var switcher: NSNumber
并且在加载托管对象时尝试将此值作为布尔值分配给 var 时,出现错误。这是将值分配给 var 的示例:
func loadData(){
var appDel = UIApplication.sharedApplication().delegate as AppDelegate
var context = appDel.managedObjectContext!
var request = NSFetchRequest(entityName: "Row")
var result:NSArray = context.executeFetchRequest(request, error: nil)!
if result.count > 0 {
for i in result{
var name = i.name as String
var des = i.des as String
var color = i.cellColor as UIColor
var switcher:Bool{
get{
return i.switcher == NSNumber(bool: true)
//the problem happens here
但是,当我尝试以这种方式进行转换的简单示例时,效果很好。
如何解决??
我觉得是这样的:
for i in results {
var name = i.name as String
var des = i.des as String
var color = i.cellColor as UIColor
var switcher: Bool {
return Bool(i.switcher)
}
}
虽然没有测试。