亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Swift Self詳解及簡單實(shí)例代碼

 更新時(shí)間:2016年12月12日 15:10:30   投稿:lqh  
這篇文章主要介紹了Swift Self詳解及簡單實(shí)例代碼的相關(guān)資料,這里對self 進(jìn)行了詳細(xì)介紹并附實(shí)例代碼,需要的朋友可以參考下

Swift中Self的使用

用于消除訪問屬性,調(diào)用方法時(shí)所產(chǎn)生的歧義。

當(dāng)函數(shù)的參數(shù)名和自身的屬性名同名時(shí),例如:

/*
使用self指明被訪問的是自身屬性還是參數(shù)
*/
class AClass {
 var greeting: String
 init(greeting: String) {
  // 使用self區(qū)分屬性和參數(shù)
   self.greeting = greeting
 }
}

在便利構(gòu)造函數(shù)中調(diào)用自身的指定構(gòu)造函數(shù)時(shí),例如:

 convenience init() {
   /*
   必須使用self,因?yàn)榘凑斩螛?gòu)造的規(guī)則,
   在第一階段初始化完成之前,
   無法使用self,
   而且由于面向?qū)ο笳Z言的特性,
   所有的初始化方法名都是init,
   沒有self,系統(tǒng)不知道調(diào)用誰的init
   */
   self.init()
   // 進(jìn)行初始化
 }

閉包中訪問自身屬性和調(diào)用自身方法時(shí),例如:

 UIView.animateWithDuration(0.25) { () -> Void in
     /*
     閉包可能被拋出,其必須知道其中的方法和屬性屬于誰,
     所以要用self
     */
     self.layoutIfNeeded()
   }

被mutating修飾的值類型方法中,修改self屬性時(shí),例如:

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

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論