欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Swift Self详解及简单实例代码

程序员文章站 2024-02-18 11:55:10
swift中self的使用 用于消除访问属性,调用方法时所产生的歧义。 当函数的参数名和自身的属性名同名时,例如: /* 使用self指明被访问的是...

swift中self的使用

用于消除访问属性,调用方法时所产生的歧义。

当函数的参数名和自身的属性名同名时,例如:

/*
使用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()
   }

被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)
 }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!