【问题标题】:How to use a Fetch request from xcdatamodeld?如何使用来自 xcdatamodeld 的 Fetch 请求?
【发布时间】:2017-03-26 11:47:08
【问题描述】:

我对 Core Data 很陌生,在 Apple 开发者网站上找不到我需要的帮助。

我在.xcdatamodeld 文件中定义了一个获取请求,但现在我找不到如何使用它? 这是获取请求的定义:

我假设 fetch 请求以 :

开头
let fetch = NSFetchRequest<NSFetchRequestResult>(entityName: "Category")

但我不知道如何按名称使用获取请求。 (该项目是用 Swift 3 编写的)

【问题讨论】:

    标签: ios core-data request swift3 nsfetchrequest


    【解决方案1】:

    Bharath 的答案是关于如何在代码中创建和执行获取请求。这通常是你将如何做到的。但是,这实际上并不是您问题的答案。如果你真的像这样在核心数据模型中创建了一个名为“allCategories”的获取请求,那么你就是这样使用它的:

    let fetchRequest = self.managedObjectModel.fetchRequestTemplate(forName: "allCategories")
    
    let fetchedObjects = self.managedObjectContext.execute(fetchRequest!)
    

    【讨论】:

    • 我不认为这种方法有什么问题。但它没有很好的记录。我只看到过一次。
    • 应删除对其他答案的引用,因为该答案也已被删除。此外,您的代码假定已在此类中定义 managedObjectModel。更好的答案在这里恕我直言:stackoverflow.com/questions/41391310/…
    【解决方案2】:

    如果您创建了实体用户并在其中创建了用户名和密码。对此的获取请求将是以下代码:

    let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)      
    let context:NSManagedObjectContext = appDel.managedObjectContext     
    let request = NSFetchRequest(entityName: "Users")
    request.returnsObjectsAsFaults = false    
    request.predicate = NSPredicate(format: "username = %@ AND password = %@", username1.text!, password1.text!)   
    let results:NSArray = try! context.executeFetchRequest(request)
    

    【讨论】:

    • 问题是使用来自数据模型的获取请求!
    猜你喜欢
    • 2021-01-16
    • 2021-09-03
    • 2021-05-30
    • 2020-11-24
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    相关资源
    最近更新 更多