class Person {
var name: String = ""
var age: Int = 0
// 系統(tǒng)構(gòu)造函數(shù)
init(){
}
// 自定義構(gòu)造函數(shù)
init(name: String, age: Int) {
self.name = name
self.age = age
}
// 自定義字典類(lèi)型構(gòu)造函數(shù) (單個(gè)轉(zhuǎn)換)
init(dict: [String: Any]) {
if let name = dict["name"] as? String {
self.name = name
}
if let age = dict["age"] as? Int {
self.age = age
}
}
}
// 實(shí)例化 系統(tǒng)構(gòu)造函數(shù) Person()
let p1 = Person()
// 實(shí)例化 自定義構(gòu)造函數(shù) Person(name:"" , age:20)
let p2 = Person(name: "jack", age: 20)
// 實(shí)例化 自定義字典類(lèi)型構(gòu)造函數(shù)
let p3 = Person (dict: ["name": "Sun", "age": 25])
print(p3.name , p3.age)
/*
使用KVC條件
1. 必須繼承自 NSObject
2. 必須在構(gòu)造函數(shù)中,先調(diào)用super.init()
3. 調(diào)用 setValuesForKeys()
4. 如果字典中某一個(gè)Key沒(méi)有需要調(diào)用 override func setValue(_ value: Any?, forUndefinedKey key: String) {}
*/
class Person: NSObject {
var name: String = ""
var age: Int = 0
// KVC
init(dict: [String: Any]) {
super.init()
setValuesForKeys(dict)
}
// 如果字典中某個(gè)Key沒(méi)有加上這句不報(bào)空
override func setValue(_ value: Any?, forUndefinedKey key: String) {}
}
// 實(shí)例化 KVC
let p4 = Person(dict: ["name" : "Sun", "age" : 25])
print(p4.name , p4.age)
菜雞學(xué)Swift3.0 14.3 類(lèi)的構(gòu)造函數(shù) (系統(tǒng)構(gòu)造函數(shù)、自定義構(gòu)造函數(shù)、自定義字典類(lèi)型構(gòu)造函數(shù))
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
推薦閱讀更多精彩內(nèi)容
- 1 創(chuàng)建類(lèi) 2 創(chuàng)建類(lèi)對(duì)象
- 素女琴,聲嗚咽。明樊花,隱凋謝。 洛斷三千篦,尤有醉心靨。 掩嫣然,露愁眉。曲漸亂,意始悲。 月久未見(jiàn)獨(dú)唱?dú)g,只因...
- <這篇書(shū)評(píng)可能有關(guān)鍵情節(jié)透露> 個(gè)人很喜歡看關(guān)于人性的討論的作品,不管是紀(jì)實(shí)的還是虛構(gòu)的。把自己沉浸在作者光怪陸離...