我越來越想創建一個自定義類的iOS我斯威夫特應用程序時出現錯誤:不正確的斯威夫特2類方法initialize語法
Super.init從初始返回
前打來電話,
永遠不會被執行
這裏是我的代碼:
class CardTableViewCell: UITableViewCell {
//Vars
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var subtitleLabel: UILabel!
@IBOutlet weak var thumbImage: UIImageView!
@IBOutlet weak var detailsLabel: UILabel!
@IBOutlet weak var costLabel: UILabel!
init(name: String){
self.nameLabel.text = name
} //<-- Error here
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
super.init(coder:aDecoder) //<--- Error Here
}
}
我在做什麼錯在這裏?我從來不需要將init Coder方法添加到自定義類中。
我已經部分修復了代碼,請參閱下文。
更新的代碼: 類CardTableViewCell:的UITableViewCell {
//Vars
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var subtitleLabel: UILabel!
@IBOutlet weak var thumbImage: UIImageView!
@IBOutlet weak var detailsLabel: UILabel!
@IBOutlet weak var costLabel: UILabel!
init(name: String, subtitle: String) {
super.init(style: UITableViewCellStyle.Default, reuseIdentifier: name)
self.nameLabel.text = name
self.subtitleLabel.text = subtitle
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
var lers = CardTableViewCell(name: "Happy", subtitle: "Gilmore") //<-- ERROR HERE
print(lers.subtitleLabel.text)
錯誤被返回:
執行被所中斷,原因EXC_BAD_INSTRUCTION (代碼= EXC_I386_INVOP,子碼=爲0x0)
我不明白init代碼的方式,內容或原因。如果有人能指出我在Swift 2上的一些適當的文檔,請給我看看。所有的蘋果開發文檔都是可怕的。
這個工作,但你能解釋這是怎麼回事?什麼是reuseIdentifier爲?我會不得不稱呼它對於類中的每個變量?例如,如何調用?:init(name:String,subtitle:字符串){ super.init(風格:UITableViewCellStyle.Default,reuseIdentifier:名稱) self.nameLabel.text =名稱 self.subtitleLabel.text =字幕 } – wUmpage
你把它作爲CardTableViewCell(名稱:yournameindentifier)給init。或者,您可以根據需要將reuseIdentifier更改爲一個常量字符串。如果它幫助你,請接受這個答案。 – JDG
那麼,reuseIdentifier可以是一個完全沒用的價值?它只需要初始化對象?我不確定我明白。 – wUmpage