我是核心数据的菜鸟,我无法在Apple开发者网站上找到我需要的帮助。
我在.xcdatamodeld
文件中定义了一个抓取请求,但现在我无法找到如何使用它?
这是获取请求的定义:
我认为获取请求以:
开头let fetch = NSFetchRequest<NSFetchRequestResult>(entityName: "Category")
但我不知道如何按名称使用获取请求。 (该项目是用Swift 3编写的)
答案 0 :(得分:10)
Bharath的答案是如何在代码中创建和执行获取请求。这通常是你如何做到的。但是,它实际上并不是你问题的答案。如果你真的在核心数据模型中创建一个名为“allCategories”的获取请求,那就是你如何使用它:
let fetchRequest = self.managedObjectModel.fetchRequestTemplate(forName: "allCategories")
let fetchedObjects = self.managedObjectContext.execute(fetchRequest!)
答案 1 :(得分:-1)
以下代码可以帮助您参考。
let fetchRequest = NSFetchRequest()
let entity = NSEntityDescription.entityForName("YOUR_ENTITY_NAME", inManagedObjectContext:kAppDelegate.managedObjectContext)
fetchRequest.entity = entity
fetchRequest.predicate = predicate
var filterarray : Array = [NSManagedObject]()
do {
filterarray = try kAppDelegate.managedObjectContext.executeFetchRequest(fetchRequest) as! [NSManagedObject]
} catch {
filterarray = []
}
答案 2 :(得分:-1)
如果您创建了一个实体用户,并且在其中创建了用户名和密码。对此的获取请求将是以下代码:
让appDel:AppDelegate =(UIApplication.sharedApplication()。委托为!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)