Как гарантировать, что аргумент inout не изменит Type и не станет nil в функции - PullRequest
0 голосов
/ 03 июня 2019

Работает в swift 4.У меня есть такая функция

func setFields<T>(_ fromView : UIView,  toObject : inout T!) -> T! 

setFields(self.view, toObject: &self.productExtended.product)

//inside ProductExtended
public var product: Product

Когда я вызываю ее так, я получаю ошибку:

"Для аргумента Inout может быть установлено значение стип, отличный от 'Product'; используйте значение, объявленное как тип '_?'вместо этого "

Более того, если я пытаюсь вызвать его для поля внутри ProductExtended.Product, я получаю неоднозначный контекст. Есть ли способ гарантировать компилятору, что я не изменю тип значения этого аргумента ия не делаю это ноль внутри функции?

...