Swift中Self的使用

Swift中Self的使用

  1. 用于消除访问属性调用方法时所产生的歧义。
  • 当函数的参数名和自身的属性名同名时,例如:
/*
使用self指明被访问的是自身属性还是参数
*/
class AClass {
    var greeting: String
    init(greeting: String) {
     // 使用self区分属性和参数
        self.greeting = greeting
    }
}
  • 便利构造函数中调用自身的指定构造函数时,例如:
    convenience init() {
        /*
        必须使用self,因为按照二段构造的规则,
        在第一阶段初始化完成之前,
        无法使用self,
        而且由于面向对象语言的特性,
        所有的初始化方法名都是init,
        没有self,系统不知道调用谁的init
        */
        self.init()
        // 进行初始化
    }
  • 闭包中访问自身属性和调用自身方法时,例如:
        UIView.animateWithDuration(0.25) { () -> Void in
            /*
            闭包可能被抛出,其必须知道其中的方法和属性属于谁,
            所以要用self
            */
            self.layoutIfNeeded()
        }
  1. mutating修饰的值类型方法中,修改self属性时,例如:
struct Point {
    var x = 0.0, y = 0.0
    mutating func moveByX(deltaX: Double, y deltaY: Double) {
        self = Point(x: x + deltaX, y: y + deltaY)
    }
}

你可能感兴趣的:(Swift中Self的使用)