美文网首页
Swift中Self的使用

Swift中Self的使用

作者: fever105 | 来源:发表于2016-01-23 23:11 被阅读4666次

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的使用

    Swift中Self的使用 用于消除访问属性,调用方法时所产生的歧义。 当函数的参数名和自身的属性名同名时,例如:...

  • swift中的seletor

    在swift3.0中使用selector sureButton.addTarget(self, action: #...

  • 2019-10-12[unowned self] 与 [weak

    参考文章:Swift - RxSwift的使用详解42([unowned self] 与 [weak self])...

  • swift self Self 使用

    前言 swift 真是奇幻,一个 self 有一堆用法,当然这都是必要的,还有他 Self 。看的我眩晕,在网上搜...

  • 解决Swift中callback循环引用 - Delegated

    前言 在Swift中我们使用闭包(Callback)的时候经常要写 [weak self] or [unowned...

  • iOS objc_msgSend 报错解决方案

    Swift 中使用MJRefresh时,objc_msgSend(self.beginRefreshingTage...

  • swift 中 Self 与self

    前提 在swift 开发过程中,尤其是第三方库中,我们多次看到首字母大写的Self,很多时候不明白其中意思,Sel...

  • Swift中self和Self

    是什么 相信大家都知道self这个关键字的具体作用,它跟OC里的self基本一样。但是对于Self来说...(WT...

  • Swift4.2新特性 & XCode 10更新

    swift语法更新 SE-0079 允许self在闭包中使用可选绑定 使用上面代码分别在swift3、swift4...

  • Swift笔记

    Swift中weak与unowned的区别 在闭包里面为了解决循环引用问题,使用了 [unowned self]。...

网友评论

      本文标题:Swift中Self的使用

      本文链接:https://www.haomeiwen.com/subject/hiurkttx.html