我正在尝试更改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
答案 0 :(得分:2)
遇到同样的问题,解决方案确实是在@NSManaged属性中使用NSNumber。此外,您可以定义计算的Bool属性,以便您可以在业务逻辑中使用标量布尔值,而不是使用NSNumber。
var isCompleted: Bool {
get {
return completed == NSNumber(bool: true)
}
set {
completed = NSNumber(bool: newValue)
}
}
答案 1 :(得分:1)
我只是考虑提交错误,因为我有同样的问题,但如果你真的想要使用Bool,那么解决方法就是使用这种方法:
setValue(true, forKey: "completed")
答案 2 :(得分:0)
我几乎遇到了这个问题。
布尔值适用于核心数据。
我遇到的问题是在'配置'和'C'默认下的核心数据编辑器中。我没有将我的实体链接到正确的班级。
答案 3 :(得分:0)