Когда я передаю свойство, которое объявлено как @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!