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 参数可以设置为类型不是“产品”的值;使用声明为类型“_?”的值 反而”

此外,如果我尝试为 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 回答