認識swift

一 .swift簡介

Swift是一種新的編程語言,用于編寫 iOS,OS X 和 watchOS應用程序。

1. 語法簡潔、快速、安全,符合現(xiàn)代化編程思維
2. 取消的指針和不安全的操作
3. 廢棄了Smalltalk的語法,全部改為點語法
4. 更豐富的自定義支持:泛型、運算符重載
5. 結(jié)合playground,做到真正意義上的所見即所得
6. 可以無縫對接到現(xiàn)有的 Cocoa 框架,并且可以兼容 Objective-C代碼

二. swift發(fā)展歷史

2014-6-3 WWDC 2014:蘋果2014年開發(fā)者大會發(fā)布。
2014-6-4 《Swift中文版》翻譯組在github上進行協(xié)同翻譯。此項目開始不到一周就獲得了1067個star。該項目的發(fā)起人是北航的大三學生。
2014-6-12《Swift中文版》第一版發(fā)布。
2015年12月4日,蘋果公司宣布其Swift編程語言現(xiàn)在開放源代碼。長600多頁的TheSwift Programming Language可以在線免費下載。

三. swift開發(fā)環(huán)境

硬件:Mac電腦系統(tǒng):OS X 10.9以上開發(fā)工具:Xcode6以上

四. swift學習資料

官網(wǎng) https://swift.org
官方教程:中文版和英文版swift在github的開源地址 https://github.com/apple/swift

五.swift初始化方法

在Objective-C中,init方法是非常不安全的:沒有人能保證init只被調(diào)用一次,也沒有人保證在初始化方法調(diào)用以后,實例的各個變量都完成初始化,甚至如果在初始化里使用屬性進行設置的話,還可能會造成各種問題。
雖然Apple也明確說明了不應該在init中使用屬性來訪問,但這并不是編譯器強制的,因此還是會有很多開發(fā)者犯這樣的錯誤。
所以Swift有了超級嚴格的初始化方法。一方面,Swift強化了designated初始化方法的地位。Swift中不加修飾的init方法都需要在方法中保證所有非Optional的實例變量被賦值初始化,而在子類中也強制 (顯式或隱式地)調(diào)用super版本的designated初始化,所以無論如何走何種路徑,被初始化的對象總是可以完成完整的初始化的。

  • 規(guī)則
    指定構(gòu)造器必須向上代理到父類的指定構(gòu)造器(如果有父類)便利構(gòu)造器必須橫向代理到自己的其他(便利或指定)構(gòu)造器,最終必須導致調(diào)用到指定構(gòu)造器指定構(gòu)造器必須保證所有的非可選屬性和常量(let)屬性都被賦值沒有convince修飾的都是指定構(gòu)造器KVC的setValuesForKeysWithDictionary方法調(diào)用中需要使用self,所以要保證self已經(jīng)完成全部初始化,實例可用
  • 寫法
  1. 先初始化子類自身的屬性
  2. 調(diào)用父類的指定構(gòu)造器:super.init()或者super.init(...)
  3. 對父類的屬性進一步定制
  4. 如果第3步?jīng)]有,則可以省略第2步的super.init(),因為會自動調(diào)用
  5. 如果父類的指定構(gòu)造器不只有init(),那么super.init()不會自動調(diào)用(無法確定該用哪個)
  • 重寫和繼承規(guī)則
    默認不會繼承父類的構(gòu)造器,如果想提供相同的構(gòu)造器,則需要重寫,即使是默認構(gòu)造器init()重寫父類的指定構(gòu)造器必須加override,可作為子類的便利構(gòu)造器重寫父類的便利構(gòu)造器不需要加override(因為子類不可能直接調(diào)用父類的便利構(gòu)造器)
  • 自動繼承規(guī)則
    如果子類中引入的所有新屬性都提供了默認值,且沒有定義任何指定構(gòu)造器,則會繼承父類所有的指定構(gòu)造器如果子類提供了所有父類指定構(gòu)造器實現(xiàn)(繼承來的或者重寫的),則會自動繼承所有父類的便利構(gòu)造器
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容