Как получить доступ к упакованному значению свойства @Published при переходе к универсальной функции - PullRequest
2 голосов
/ 23 октября 2019

Когда я передаю свойство, которое объявлено как @Published, в обобщенную функцию, я получаю сообщение об ошибке, ссылающееся на опубликованное значение. Это нормально где-либо еще, где я использую переменную, но только не при переходе в обобщенную функцию.

Ошибка:

error: cannot convert value 'user' of type 'User?' to expected type 'Published<User?>.Publisher?', use wrapper instead

Вот код игровой площадки:

struct User {}

class Test {
    @Published var user: User?
}

func normalFunc(_ argument: User?) -> User? {
    return argument
}

func genericFunc<T>(_ argument: T?) -> T? {
    return argument
}

let test = Test()
normalFunc(test.user) // Ok
genericFunc(test.user) // Error

Лучшее, что я смог сделать, это заключить значение в круглые скобки, вот так:

genericFunc((test.user)) // Ok!
...