Swift Self詳解及簡單實(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)文章
iOS應(yīng)用開發(fā)中StoryBoard搭建UI界面的基本使用講解
這篇文章主要介紹了iOS應(yīng)用開發(fā)中StoryBoard搭建UI界面的基本使用,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-02-02iOS實(shí)現(xiàn)調(diào)用QQ客戶端發(fā)起臨時(shí)會話
本篇文章主要給大家詳細(xì)分析了用IOS實(shí)現(xiàn)調(diào)用QQ客戶端發(fā)起臨時(shí)會話的功能,對此有需要的朋友收藏分享下。2018-02-02iOS移動端(H5)alert/confirm提示信息去除網(wǎng)址(URL)
這篇文章主要介紹了iOS移動端(H5)alert/confirm提示信息去除網(wǎng)址URL,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11iOS Swift利用UICollectionView實(shí)現(xiàn)無限輪播功能(原理)詳解
無線輪播圖的實(shí)現(xiàn)方式有很多,下面這篇文章主要給大家介紹了關(guān)于iOS Swift利用UICollectionView實(shí)現(xiàn)無限輪播功能(原理)的相關(guān)資料,需要的朋友可以參考下2018-09-09iOS開發(fā)之UIMenuController使用示例詳解
這篇文章主要為大家介紹了iOS開發(fā)之UIMenuController使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07舉例講解Objective-C中@property屬性的用法
這篇文章主要介紹了Objective-C中@property屬性的用法,包括@property的屬性關(guān)鍵字的整理,需要的朋友可以參考下2016-03-03CAMediaTiming ( 時(shí)間協(xié)議)詳解及實(shí)例代碼
這篇文章主要介紹了CAMediaTiming / 時(shí)間協(xié)議詳解及實(shí)例代碼的相關(guān)資料,這里附有實(shí)例代碼,幫助大家學(xué)習(xí)參考,需要的朋友可以參考下2016-12-12