在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?
答案 0 :(得分:0)
inout将不接受 Generic 类型,因为引用要将值存储回其原始值。这是inout https://docs.swift.org/swift-book/LanguageGuide/Functions.html
的链接