我在Swift 2.3中使用了以下内容
class func getRecord(tableName: String) -> [AnyObject] {
let request = NSFetchRequest(entityName: tableName)
let requestResult = MyModel.executeRequest(request);
}
其中MyModel是一些模型。 上面的代码在Swift 2中运行正常。现在我必须在Swift 3中进行转换。 这就是我在swift3中所做的,
let request: NSFetchRequest<NSFetchRequestResult> = tableName.fetchRequest()
但是,字符串类型肯定没有fetchRequest成员。所以我被困在这个舞台上。请指导我这方面。
答案 0 :(得分:2)
在Swift 3中,NSFetchRequest
成为通用类型。并且您可以使用实体的类的静态方法fetchRequest
来获取NSFetchRequest<Self>
。
例如,如果您的实体被称为MyModel
,您可以获得这样的获取请求:
let request: NSFetchRequest<MyModel> = MyModel.fetchRequest()
然后,您可以通过在托管对象上下文中调用execute
来执行它。
try? context.execute(request)
答案 1 :(得分:1)
简单使用你的modelname.fetchRequset。在您的情况下,您必须执行以下操作,
let request: NSFetchRequest<MyModel> = MyModel.fetchRequest()