Swift 3:CoreData FetchRequest

时间:2017-07-21 04:40:23

标签: core-data swift3

我在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成员。所以我被困在这个舞台上。请指导我这方面。

2 个答案:

答案 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()