在Swift 3.0之前,我们可以这样fetch数据:
var people = [NSManageObject]()
//1
let fetchRequest = NSFetchRequest(entityName: "Person")
do {
//2
let results =
try managedContext.executeFetchRequest(fetchRequest)
//3
people = results as! [NSManagedObject]
} catch let error as NSError {
print("Could not fetch \(error),\(error.userInfo)")
}
}
不过在Swift 3.0以后,要做一些调整,首先第1句修改为:
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Person")
在这里你必须明确指定一种泛型,在第2句修改如下:
let results = try managedContext.fetch(fetchRequest)
最后第3句不需要做改变.
其实第1句也可以这么写:
let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "Person")
这样第3句就可以将类型转换删掉了:
people = results
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。