swift 3.0 關于協(xié)議中定義init的問題
protocol Pet : class
{
??????? var name : String {get set}
??????? init (name : String)
}
class Dog : Pet
{
??????? var name : String
??????? //??? 這個sex不想給默認值
??????? var sex : String
??????? //??? 實現(xiàn)Pet協(xié)議的init
??????? init (name : String)
??????? {
??????????????? self.name = name
? ? ? ? ? ? ? // ?? 這里會報錯,因為沒有給sex初始化
??????? }
}
上面的代碼,如果在協(xié)議(Pet)里面規(guī)定了一個構造函數(shù)(init (name : String))
在使用它的類(Dog)中又有自己的沒有默認值的變量(sex : String),假如這個變量就是不適合給默認值
那構造函數(shù)怎么寫???實現(xiàn)協(xié)議的構造函數(shù)又不可以給自己的變量賦值,因為參數(shù)列表規(guī)定就是(name : String)
那在Dog類實現(xiàn)的Pet協(xié)議規(guī)定的init (name : String)一定會報錯
2017-10-03
var sex : String?