ios - 刚刚在数据库中添加的元素在 CoreData Swift 中得到了父元素
问题描述
问题是:我有一个简单的应用程序来存储一些数据,我有两个 ViewController:CategoryViewController 和 ItemsViewController。
我正在尝试过滤数据以显示属于特定类别的项目。例如:类别“购买”应仅包含“Apples”、“Oranges”、“Pears”项目。但它只显示最后添加的项目。
func loadItems(with request: NSFetchRequest<Item> = Item.fetchRequest(), predicate: NSPredicate? = nil) {
let categoryPredicate = NSPredicate(format: "parentCategory.name MATCHES %@", (selectedCategory?.name)!)
if let additionalPredicate = predicate {
request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [categoryPredicate,
additionalPredicate])
} else {
request.predicate = categoryPredicate
}
do {
itemArray = try context.fetch(request)
} catch {
print("error fetching data from context\(error)")
}
tableView.reloadData()
}
所以我现在有 4 个类别,这是 sqlite 显示的,刚刚添加的项目有父值
解决方案
解决了!我有关系“toOne”。在 DBName.xcdatamodeld 中将其更改为“toMany”,现在一切正常
推荐阅读
- bash - 在 Bash For Loop 中使用 CD - 仅获取相对路径
- python - 将 datetime64[ns] 列转换为 Pandas 中的 DatetimeIndex
- python - 如何将多条曲线拟合到单个数据散点图?
- c# - 如何从序列化的 XML 节点中分离字符串
- python - 在 conda 环境中安装 glumpy(或其他非 conda 包)
- java - 为什么 Java 规范中没有定义 ThreadLocal 或 AnnotationProcessor?
- c++ - 在树莓派上用 C++ 从一个 Linux 应用程序到另一个应用程序的最简单 IPC
- python-3.x - 向直方图添加次要刻度线
- scala - 启用 DefaultTyping 时使用 Jackson Scala 枚举序列化失败
- javascript - 这个 fetch 如何在 react gatsby 网站上进行优化