【发布时间】:2016-06-19 09:36:19
【问题描述】:
在之前的 Swift 中,我可以使用这样的代码将新数据添加到我的数据模型中的“TestEntity”中。
NSManagedObject 是为我的“TestEntity”创建的,我可以使用“点”语法设置它的属性
最后,我会保存上下文
let entity=NSEntityDescription.insertNewObject(forEntityName: "TestEntity", into: context) as! TestEntity
entity.testAttribute="test value"
context.save()
此代码在 Swift 3 中不起作用。当我运行它时,我收到以下运行时错误:
无法转换“NSManagedObject_TestEntity_”类型的值 (0x175306b0)到“testCoreData.TestEntity”(0xd6bb8)。 2016-06-19 11:07:52.305195 testCoreData [689:264453] 无法转换类型的值 'NSManagedObject_TestEntity_' (0x175306b0) 到 'testCoreData.TestEntity' (0xd6bb8)
谁能解释在 Swift 3 中应该如何做到这一点?
问题的第二部分是如何再次访问数据。以下代码以错误结尾:
致命错误:
NSArray元素未能匹配 Swift 数组元素类型
let fr:NSFetchRequest<TestEntity>=TestEntity.fetchRequest()
do {
let searchResults=try context.fetch(fr)
if let results=searchResults {
for result in results {
print("testAtt = \(result.testAtt)")
}
}
} catch {
}
【问题讨论】:
标签: swift core-data swift3 nsmanagedobject nsentitydescription