Как наблюдать за изменениями на одном конкретном NSmanagedObject и распространять их через макрос @environmentobject?IOS

Программируем под IOS
Ответить
Anonymous
 Как наблюдать за изменениями на одном конкретном NSmanagedObject и распространять их через макрос @environmentobject?

Сообщение Anonymous »

У меня есть настройки сущность Coredata, и всегда есть one объект этого объекта, либо none .

Код: Выделить всё

class SettingsManager: ObservableObject {
static var shared = SettingsManager()

var carType: CarType {
CarType(rawValue: settings?.carTypeValue ?? "") ?? .simple
}

init() {
settings = Settings.first()
}

@Published private var settings: Settings?
}

@objc(Settings)
class Settings: NSManagedObject {
// a lot more other properties
@NSManaged var carTypeValue: String
}
В приложении я создаю эту среду:

Код: Выделить всё

@main
struct FieldService: App {
private var settings = SettingsManager.shared
var body: some Scene {
WindowGroup {
StartView()
.environmentObject(settings)
}
}
}

struct StartView: View {
@EnvironmentObject var settings: SettingsManager
var body: some View {
Text(settings.carType.name) // ❌ does not update when changed
}
}
Это можно сделать, чтобы передать настройки напрямую и подключить его как @observedobject , но я хочу избежать передачи его в каждом представлении вручную.

Подробнее здесь: https://stackoverflow.com/questions/796 ... it-through
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»