【发布时间】:2015-06-27 01:36:07
【问题描述】:
我对 Swift 中的初始化有一个非常普遍的问题。 与 Objective C 不同,现在可以在我的函数之外的声明处直接调用 init() : 例如
class ViewController: UIViewController {
let myView: UIView = UIView()
override func viewDidLoad() {
super.viewDidLoad()
myView.frame = getFrame()
myView.backgroundColor = UIColor.redColor()
self.view.addSubview(myView)
}
func getFrame() -> CGRect {
return CGRectMake(0, 0, 100, 100)
}
}
在 Objective C 中,我会在我的函数中完成初始化。
但是如果我想用尚未设置的参数调用初始化程序怎么办? 例如 我想用一个在 func() 中计算的帧来初始化
class ViewController: UIViewController {
//THIS IS NOT WOKRING
let myView: UIView = UIView(frame: getFrame())
override func viewDidLoad() {
super.viewDidLoad()
myView.backgroundColor = UIColor.redColor()
self.view.addSubview(myView)
}
func getFrame() -> CGRect {
return CGRectMake(0, 0, 100, 100)
}
}
我不想在代码中的两个不同位置进行初始化。初始化有什么通用模式吗?
【问题讨论】:
标签: swift initialization