尝试更改布尔属性时发生EXC_BAD_ACCESS错误

我试图改变一个Bool属性,并收到一个EXC_BAD_ACCESS错误。

我正在使用XCode 6和Swift。

note属性保存正常,但是completed属性会抛出EXC_BAD_ACCESS错误

在这里输入图像说明

 import Foundation import CoreData class Task: NSManagedObject { @NSManaged var note: String! @NSManaged var completed: Bool } 

更换属性例程

  // taskObject is an instance of Task() // Set the completed flag taskObject.completed = true // EXC_BAD_ACCESS 

有同样的问题,解决scheme确实是在@NSManaged属性中使用NSNumber。 此外,您可以定义一个计算的Bool属性,以便您可以在业务逻辑中使用标量布尔值,而不使用NSNumber。

 var isCompleted: Bool { get { return completed == NSNumber(bool: true) } set { completed = NSNumber(bool: newValue) } } 

我只是考虑提交一个bug,因为我有同样的问题,但如果你真的想要使用Bool,那么一个解决方法是使用这个方法:

 setValue(true, forKey: "completed") 

我几乎有这个问题。

布尔在核心数据。

我遇到的问题是在“configuration”和“C”默认的核心数据编辑器中。 我没有将我的实体链接到正确的类。