【发布时间】:2016-11-11 11:40:42
【问题描述】:
这应该可行,但我不知道为什么不可行。代码一目了然。
class Themer {
class func applyTheme(_ object: inout NSObject) {
//do theming
}
}
我将主题应用于按钮,如下所示:
class ViewController: UIViewController {
@IBOutlet weak var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
Themer.applyTheme(&button)
}
按钮对象是一个变量,但编译器会抛出错误。
【问题讨论】:
-
使用
UIView而不是NSObject -
想想如果
applyTheme(_:)将object设置为NSNumber实例(继承自NSObject,因此是合法的)会发生什么;) -
您不能将 X 类型的变量传递给 X 的某个父级的 inout。
标签: ios swift swift3 immutability inout