Mar*_*ida 6 core-data nsfetchrequest ios swift
我有一个核心数据应用程序,其模型设置如下图所示:
关系设置如下:
类别<-->>子类别<-->>项目
现在,是否可以在一次提取中从具有名为“categoryName”的相同属性的 Subcategory 和 Item 实体获取对象?我认为可以通过使用关系来完成,但我使用的代码不起作用,即:
let fetchNote = NSFetchRequest(entityName: "Category")
fetchNote.predicate = NSPredicate(format: "ANY subcategory.name == %@ AND item.name == %@", "Badaue", "Badaue")
let notes = try! appDel.managedObjectContext.executeFetchRequest(fetchNote) as? [Category]
print(notes)
Run Code Online (Sandbox Code Playgroud)
为了避免混淆,我建议重命名item为items以反映它是一对多关系。同样适用于subcategory.
EDIT2 - 您要求获取具有特定的Subcategory和对象,对吗?您上面编写的查询根本不执行此操作。ItemcategoryName
Entity首先,是的,您将需要 2 个查询,因为您一次只能获取 1 种类型。
其次,让我们重写你的语法,因为现在它非常危险。
do {
let predicate = NSPredicate(format: "categoryName == %@", "yourCategoryHere")
let fetchSubcategory = NSFetchRequest(entityName: "Subcategory")
fetchSubcategory.predicate = predicate
if let subCategoryResults = try context.executeFetchRequest(fetchSubcategory) as? [Subcategory] {
//do stuff
}
let fetchItem = NSFetchRequest(entityName: "Item")
fetchItem.predicate = predicate
if let itemResults = try context.executeFetchRequest(fetchItem) as? [Item] {
//do stuff
}
}catch {
print(error)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15592 次 |
| 最近记录: |