Swift構造函數

1.構造函數:swift

給屬性開闢內存空間   給屬性設置初始值  最終目標建立一個對象     init構造函數  參數有可能不一樣網絡

1//定義屬性使用var   是咱們開發須要的閉包

var name Stringide

//可選屬性 默認等於nil   能夠不須要在構造函數裏進行初始化   title屬性沒有分配內存空間  在其餘地方設置值的時候才須要分配內存空間函數

var titleStringspa

//‘override’ 重寫關鍵字   子類繼承父類   須要對父類裏面的方法進行擴展    就叫重寫 orm

//調用super init()以前  保證子類初始化完成對象

//swift  在當前工程  類都是全局共享的  不用導頭文件    繼承

2)重載構造函數內存

函數名相同  參數名或者參數個數不一樣   就是重載   不只限於構造函數   包括其餘函數   

//屬性名字和傳入的參數同樣  須要使用self區分

3)重寫

//若是當前類中提供了構造函數  則默認的構造函數沒有了   由於默認的構造函數init  沒法給子類的屬性進行初始化

2.KVC

本質:  在運行時動態向對象發送  setValueforKey

1)可選類型的屬性能夠不在構造函數中初始化

2KVCOC特有的  ageswift不兼容   基本數據類型不能使用可選類型  要進行初始化

3)若是子類沒有提供構造函數  則可使用父類的構造函數

3.便利構造函數 

1’   判斷前面的可選類型的對象是否爲nil     若是爲nil  則後面的代碼不執行  直接返回nil   若是不爲nil    則執行後面的代碼  返回結果

2)不能重寫父類裏面的便利構造函數

3)便利父類裏面的便利函數

4)只有便利構造函數中能使用self. init()

5)便利構造函數能夠返回nil

6)便利構造函數最終調用指定構造函數

4.懶加載

使用lazy關鍵字     在須要的時候  對其進行建立 並把返回的值給定義的lazy屬性

1)可使用閉包做爲懶加載

2didSet  當外界設置完值以後  會直接調用didSet

3)計算屬性能夠省略get  ,不能賦值

-不能存值  只能取值

-不須要開闢內存空間  耗費cpu

-每次都會調用get方法計算

4)存儲屬性

-能存值  能取值

-須要開闢內存空間

-耗費內存

(5) 懶加載  閉包只會執行一次   開闢內存存儲

5.閉包的循環引用

1)析構函數   deinit{}

2)對象銷燬後  weakSelf指向的地址爲nil

3unowned至關於oc中的__unsafe_unretain  對象銷燬後  指向的地址不變

6.網絡訪問

swiftOC共存時 須要橋接

1try  向系統保證個人數據必定可以反序列化成功

try   若是返回的數據不能反序列化成功  則直接返回nil

相關文章
相關標籤/搜索