小编use*_*742的帖子

SwiftUI @FetchRequest 对关系的核心数据更改不刷新

Node具有name, createdAt, 多对多关系children和一对一关系parent(均为可选)的实体的核心数据模型。使用 CodeGen 类定义。

使用@FetchRequest带有 谓词的 a parent == nil,可以获取根节点并随后使用关系遍历树。

根节点 CRUD 可以很好地刷新视图,但对子节点的任何修改在重新启动之前都不会显示,尽管更改已保存在 Core Data 中。

下面代码中最简单的示例说明了子节点删除的问题。删除在 Core Data 中有效,但如果删除是在子级上,则视图不会刷新。如果在根节点上,视图刷新工作正常。

我是 Swift 的新手,所以如果这是一个相当基本的问题,我很抱歉,但是如何在更改子节点时刷新视图?

import SwiftUI
import CoreData

extension Node {

    class func count() -> Int {
        let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
        let fetchRequest: NSFetchRequest<Node> = Node.fetchRequest()

        do {
            let count = try context.count(for: fetchRequest)
            print("found nodes: \(count)")
            return count
        } catch let error as NSError {
            fatalError("Unresolved …
Run Code Online (Sandbox Code Playgroud)

core-data swift swiftui combine

6
推荐指数
1
解决办法
1508
查看次数

标签 统计

combine ×1

core-data ×1

swift ×1

swiftui ×1