//name屬性是可選的,在需要的時候建立
//在手機開發中,記憶體非常寶貴,實際執行中很多屬性不一定需要分配空間
var name: string?
init(dict: [string: anyobject])
let p = student(dict: ["name": "小明"
as anyobject])
print(p.name)
//列印輸出: optional("小明")
//給基本型別屬性初始化
//如果這樣寫:
//var age: int?
//會丟擲以下異常:
// - 意思是kvc會無法找到age的key,因為int是乙個基本資料型別的結構體
//所以要這麼寫,賦初始值
var age: int = 0
let p = student(dict: ["name": "小明"
as anyobject,"age": 18
as anyobject])
print("\(p.name) \(p.age)")
//列印輸出: optional("小明") 18
//private var title: string?
not key value coding-compliant for the key title.
// - 如果是private屬性,使用kvc設定的時候,程式會直接崩潰
// - swift中被private修飾的屬性或方法,徹底禁止外部訪問,oc中私有屬性或者方法可以通過runtime訪問到,所以此時無法使用private修飾
var title: string?
let p = student(dict: ["name": "小明"
as anyobject,"age": 18
as anyobject,"title": "北京"
as anyobject])
print("\(p.name) \(p.age) \(p.title)")
//列印輸出: optional("小明") 18 optional("北京")
- 在需要的時候建立
- 避免寫建構函式,可以簡化**
Swift 4 建構函式 KVC構造
viewcontroller.swift import uikit 在swift中 所有的類和類的方法 都是共享的 在同乙個命名空間 所有的類都是共享的 命名空間 是專案名稱 class viewcontroller uiviewcontroller person.swift 建構函式 分配記憶體空...
Swift3 0 建構函式
viewcontroller.swift import uikit 在swift中,同乙個專案中 同乙個命名空間 所有的類預設都是共享的,不需要引用,可以直接訪問,不需要import 所有物件的屬性 var,也可以直接訪問到 class viewcontroller uiviewcontroller...
KVC建構函式
1.物件的創造過程 在swift中必選屬性,初始化是分段的,先初始化本類的必選屬性,然後再呼叫super.init初始化父類的必選屬性,super.init就是整個建構函式的結束 2.kvc給物件初始化 kvc原理 在程式執行時給物件傳送setvalue forkey的訊息 kvc機制 1.setv...