SwiftUI словарь справочный элемент странность - PullRequest
0 голосов
/ 15 апреля 2020

В типичном приложении Swift я могу иметь словарь и написать такой код:

let e = dict[key]!
e.foo = "x"

И элемент будет обновлен в словаре, как и ожидалось.

Однако похоже, это не работает в SwiftUI!

Если в userContext у нас есть Dictionary<Person> (Person - класс), следующий код работает и обновляет словарь, как и ожидалось:

self.userContext.dict[self.id]!.foo = "1234"

То есть в отладчике я вижу это:

po self.userContext.dict
// dict[self.id].foo is "1234" as expected

(userContext - это класс @EnvironmentObject со словарем внутри него)

Но этот код не обновляет словарь в userContext:

var e = self.userContext.dict[self.id]!
e.foo = "1234"
po self.userContext.dict
// dict[self.id].foo is the old value, not "1234"

Я что-то не так делаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...