【发布时间】:2014-07-31 23:46:45
【问题描述】:
我在一个新项目中使用了 Core Data 的 Swift 样板代码。我的 .xcdatamodeld 文件定义了一个实体 (Task) 和一个属性 (name)。
我有一个如下所示的Task.swift 文件:
import CoreData
class Task: NSManagedObject {
@NSManaged var name: String
}
当我运行它时,它可以工作:
var firstTask = NSEntityDescription.insertNewObjectForEntityForName("Task",
inManagedObjectContext: managedObjectContext) as NSManagedObject
firstTask.setPrimitiveValue("File my TPS reports", forKey: "name")
var error: NSError?
managedObjectContext.save(&error)
我什至可以进入 iOS 模拟器使用的 SQLite 数据库并确认该行已添加。
但是,当我运行与上面完全相同的代码但使用as Task 而不是as NSManagedObject 时,我会遇到与var firstTask... 行相关联的错误消息Thread 1: EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0) 崩溃。如果我继续执行,每次前进时都会在线程 1 的顶部获得 EXC_BAD_ACCESS 和 0 misaligned_stack_error_。
为什么这个演员阵容会导致这一切?
【问题讨论】:
-
您能否发布一张显示
Task实体的CoreData 模型屏幕截图,其中Entity Inspector 视图在右侧打开? -
很棒的评论。谢谢。它只是让我找到了一个可行的解决方案。
-
解决方案是什么?