// 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.儲存屬性 儲存屬性可以儲...