Swift Self詳解及簡單實例代碼
Swift中Self的使用
用于消除訪問屬性,調用方法時所產生的歧義。
當函數(shù)的參數(shù)名和自身的屬性名同名時,例如:
/*
使用self指明被訪問的是自身屬性還是參數(shù)
*/
class AClass {
var greeting: String
init(greeting: String) {
// 使用self區(qū)分屬性和參數(shù)
self.greeting = greeting
}
}
在便利構造函數(shù)中調用自身的指定構造函數(shù)時,例如:
convenience init() {
/*
必須使用self,因為按照二段構造的規(guī)則,
在第一階段初始化完成之前,
無法使用self,
而且由于面向對象語言的特性,
所有的初始化方法名都是init,
沒有self,系統(tǒng)不知道調用誰的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)
}
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
iOS應用開發(fā)中StoryBoard搭建UI界面的基本使用講解
這篇文章主要介紹了iOS應用開發(fā)中StoryBoard搭建UI界面的基本使用,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-02-02
iOS移動端(H5)alert/confirm提示信息去除網址(URL)
這篇文章主要介紹了iOS移動端(H5)alert/confirm提示信息去除網址URL,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11
iOS Swift利用UICollectionView實現(xiàn)無限輪播功能(原理)詳解
無線輪播圖的實現(xiàn)方式有很多,下面這篇文章主要給大家介紹了關于iOS Swift利用UICollectionView實現(xiàn)無限輪播功能(原理)的相關資料,需要的朋友可以參考下2018-09-09
iOS開發(fā)之UIMenuController使用示例詳解
這篇文章主要為大家介紹了iOS開發(fā)之UIMenuController使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07
舉例講解Objective-C中@property屬性的用法
這篇文章主要介紹了Objective-C中@property屬性的用法,包括@property的屬性關鍵字的整理,需要的朋友可以參考下2016-03-03
CAMediaTiming ( 時間協(xié)議)詳解及實例代碼
這篇文章主要介紹了CAMediaTiming / 時間協(xié)議詳解及實例代碼的相關資料,這里附有實例代碼,幫助大家學習參考,需要的朋友可以參考下2016-12-12

