0

で働いてい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 内のフィールドに対してそれを呼び出そうとすると、あいまいなコンテキストが得られます その引数の値の型を変更せず、関数内で nil にしないことをコンパイラに保証する方法はありますか?

4

1 に答える 1

1

inout won't accept Generic type , because the reference wants to store value backs to its original value. here is the link for inout https://docs.swift.org/swift-book/LanguageGuide/Functions.html

于 2019-12-16T17:51:14.373 に答える