相关疑难解决方法(0)

如何在 SwiftUI 视图中自动反映 CoreData+iCloud 变化?

所以......我有一个启用了 StoreData 和 iCloud 的应用程序。我的数据正在设备之间同步,但在反映 UI 中的更改时,我没有得到我想要的行为。

我想要的行为:当用户在两个设备(A 和 B)上打开我的应用程序并对其中一个(A)进行更改时,我希望更改在合理的时间内自动反映在第二个(B)设备 UI 中.

在此处输入图片说明

我目前的行为:当用户在一台设备 (A) 上进行更改时,另一台设备 (B) 上什么也没有发生……直到我最小化和最大化第二台设备 (B) 上的应用程序(不重新启动……只是最小化)。

在此处输入图片说明

我的想法是,在最小化和重新打开应用程序时触发某些操作之前,应用程序不会收到更改(iCloud 不会同步)。

但我不知道。根据Syncing a Core Data Store with CloudKit同步和通知其他设备应该自动发生。而且我认为我的 View 应该正确连接,因为在对 CoreData 数据库中的数据进行本地更改时它会立即更改。

我的 SwiftUI 视图几乎如下所示:

import SwiftUI
import CloudKit
import Foundation

struct MyView: View {
    @FetchRequest(fetchRequest: Entity.fetchRequest() as! NSFetchRequest<Entity>) var entities: FetchedResults<Entity>

    var body: some View {
        List {
            ForEach(entities, id: \.id) { e in
                Text("\(e.title)")
            }
        }
    }
}

public class Entity: …
Run Code Online (Sandbox Code Playgroud)

core-data nsfetchrequest icloud swift swiftui

7
推荐指数
1
解决办法
1385
查看次数

标签 统计

core-data ×1

icloud ×1

nsfetchrequest ×1

swift ×1

swiftui ×1