所以......我有一个启用了 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)