在这样一个简单的例子中,我可以省略自我参考backgroundLayer,因为它是明确的backgroundLayer backgroundColor设置。
class SpecialView: UIView { let backgroundLayer = CAShapeLayer() init() { backgroundLayer.backgroundColor = UIColor.greenColor().CGColor } }
但是,就像在Objective-C中一样,我们可以通过添加类似命名的局部变量(或常量)来混淆事物。现在backgroundColor正在非形状图层上设置:
class SpecialView: UIView { let backgroundLayer = CAShapeLayer() init() { var backgroundLayer = CALayer() backgroundLayer.backgroundColor = UIColor.greenColor().CGColor } }
(这是通过使用self.backgroundLayer.backgroundColor解决)
在Objective-C中,我总是避免使用属性的属性,属性总是以自我为前缀。我不必担心ivars在swift,但还有其他考虑,当我应该使用self在swift?