? Итак ... У меня есть приложение с включенными StoreData и iCloud. Мои данные синхронизируются между устройствами, но я не понимаю, какое поведение я хочу, когда дело доходит до отражения изменений в пользовательском интерфейсе.
Поведение, которое я хочу: Когда у пользователя есть мой Приложение открывается на двух устройствах (A и B) и вносит изменения одно (A) из них. Я хочу, чтобы изменение автоматически отображалось во втором (B) интерфейсе устройства в течение некоторого разумного времени.
Поведение, которое у меня сейчас есть: Когда пользователь вносит изменения на одном устройстве (A), на другом ничего не происходит (B) ... пока я не сверну и разверните приложение на втором устройстве (B) ( Не перезапускается ... просто минимизируется ).
? My Считается, что приложение не получит изменения (iCloud не будет синхронизироваться c), пока не произойдет какое-либо действие при сворачивании и повторном открытии приложения.
? Но я не знаю. Согласно Синхронизация основного хранилища данных с 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: NSManagedObject {
@NSManaged public var id: UUID?
@NSManaged public var title: String
}
Любая помощь очень ценится! (Дайте мне знать, если мне потребуется предоставить дополнительную информацию.)