在之前的 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 {
}