Swift 類與屬性

2021-07-22 07:55:23 字數 2119 閱讀 3218

// 1.建立乙個類(class是swift中的關鍵字,用於定義類

// class 類名:繼承的類

// 例如:類名-> learningclass 父類:uiviewcontroller

class learningclass: uiviewcontroller

// 2.類可以新增屬性方法 通常分為多種:

// 儲存屬性:儲存事例的常量和變數

// 計算屬性:通過某種方式計算出來的屬性

// 2.1儲存屬性 最常用的屬性,使用者儲存常量或變數,可以再建立時賦予初始值,也可以在初始化物件賦予值

// 列:

class car

class carviewcontroller: uiviewcontroller

}// 2.2 計算屬性 儲存的並不是實際值,而是提供getter/setter來間接獲取/設定屬性值

// 如果只提供getter方法,那麼該屬性便為唯讀屬性

// 例:

class banana: nsobject set

}}// 2.3 類屬性:需要通過 static 修改 與 oc static 類是

// 類屬性是與類相關聯的,而不是與類的例項相關聯

// 所有的類和例項都共有乙份類屬性.因此在某一處修改之後,該類屬性就會被修改

// 類屬性的設定和修改,需要通過類來完成

// 例:

class test: nsobject

class testviewcontroller: uiviewcontroller

}// 3.監聽屬性變化

// willset:在屬性值被儲存之前設定。此時新屬性值作為乙個常量引數被傳入。該引數名預設為newvalue,我們可以自己定義該引數名

// didset:在新屬性值被儲存後立即呼叫。與willset相同,此時傳入的是屬性的舊值,預設引數名為oldvalue

// willset與didset只有在屬性第一次被設定時才會呼叫,在初始化時,不會去呼叫這些監聽方法

// 例:

class test1: nsobject

didset(oldvalue)

/* 列印:

age 將要改變 nil

age 將要新值 optional(23)

age 已經改變 optional(23)

age 已經新值 nil*/}

}class test1viewcontroller : uiviewcontroller

}// 4.類的建構函式

// 4.1 建構函式類類似oc的構造方法,若沒有呼叫建構函式系統也會提供預設的建構函式,同時也可以重寫系統的構造方法

// 4.2 類的屬性必須有值

// 可以再建構函式中賦值

// 也可以再初始化方法賦值

// 4.2.1 例:先在構造方法中賦值

class carobj: nsobject

}// 4.2.2 例:在初始化方法中賦值

class carobj1: nsobject

}class carobj1viewcontroller: uiviewcontroller

}// 5.字典轉模型(初始化時傳入字典)

// 真實建立物件時,更多的是將字典轉成模型

// 注意:

// 去字典中取出的是nsobject,任意型別.

// 可以通過as!轉成需要的型別,再賦值(不可以直接賦值)

class carobj2: nsobject

}class carobj2viewcontroller: uiviewcontroller

}// 5.1字典轉模型(利用kvc轉化)

// 利用kvc字典轉模型會更加方便

// 注意:

// kvc並不能保證會給所有的屬性賦值

// 因此屬性需要有預設值

// 基本資料型別預設值設定為0

// 物件或者結構體型別定義為可選型別即可(可選型別沒有賦值前為nil)

class carobj3: nsobject

}class carobj3viewcontroller: uiviewcontroller

}

文章參考:

Swift快速為類擴充套件屬性

在程式編寫過程中,我們常常需要為已有的類擴充套件新的屬性。通常我們的解決辦法是先宣告乙個key,然後使用objc getassociatedobject和objc setassociatedobject來設定屬性。相對來說比較麻煩,因為擴充套件屬性的需求比較大,所以筆者對這兩個方法做了一些封裝,減少...

swift 類和結構體(之屬性)

值型別和引用型別中可以通過外部訪問的成員 除了方法外 都叫做屬性。swift中到底存在多少種屬性?1.儲存屬性 類和結構體的成員變數或者成員常量都屬於儲存屬性。struct fixedlengthrange 建立結構體物件,並初始化結構體中屬性 var rangeofthreeitems fixed...

swift10 0屬性與下標

在物件導向分析與設計方法學中類是由屬性和方法組成的,屬性一般用於訪問資料成員。在objective c中,屬性本身並不儲存資料,而swift中的屬性分為儲存屬性和計算屬性,儲存屬性就是objective c中的資料成員,計算屬性不儲存資料,但可以通過計算其他屬性返回資料。1.儲存屬性 儲存屬性可以儲...