使用其他值初始化swift中的属性
问题描述:
是否可以使用其他值/属性(例如, UIButton,UILabel,...?使用其他值初始化swift中的属性
我很想有这样的事情:
let myLabel = UILabel() {
font = UIFont(...)
textColor = ...
...
}
答
这是一个不错的功能,在C#中可用的(也可能是其他语言),但在迅疾不幸的是不可用的 - 我想不出任何解决方法来模仿该行为。
答
不知道这是否会工作,但你可以用didSet方法
let myLabel = UILabel() {
didSet {
myLabel.font = UIFont(...)
myLabel.textColor = UIColor.blackColor()
}
}
答
您可以与您返回声明类型的值封闭初始化尝试,并与()
执行它:
let myLabel: UILabel = {
let theLabel = UILabel()
theLabel.font = UIFont(...)
theLabel.textColor = ...
...
return theLabel
}()
请注意,你必须之前=
+0
通过这是很常见的使用常量的这个声明定义了您的应用的生命周期内保持不变全球单的方式。例如核心数据帮手。全局常量如上所述,保证被懒惰地实例化。 – 2015-02-07 12:14:31
答
如何像这样明确地声明值类型?
func config<T>(obj: T, configure: T -> Void) -> T {
configure(obj)
return obj
}
let myLabel = config(UILabel(...)) {
$0.font = UIFont(...)
$0.textColor = ...
...
}
似乎并没有工作,不幸的是 – swalkner 2015-02-07 11:36:28