В простом примере, например, я могу опустить self для ссылки на 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 для свойств, и свойства всегда были префиксом self для ясности. Мне не нужно беспокоиться об иварах в быстром, но есть ли другие соображения, когда я должен использовать себя в быстрой?