所以香港專業教育學院建立了一個自定義單元格類我UITableView
。 Xcode中堅持,這UITableViewCell
有以下初始化(Xcode中實際上自動填寫該代碼對我來說):的UITableViewCell,不能援引「初始化」與類型的參數列表「(編碼器:NSCoder)」
class customCell: UITableViewCell {
required init(coder aDecoder:NSCoder) {
fatalError("init(coder:) has not been implemented")
}
伊夫修改這個初始化的內容包含以下內容:
// fatalError("init(coder:) has not been implemented")
super.init(coder: aDecoder)
如果我刪除。required
然後Xcode中踢了一個錯誤,並希望通過將關鍵詞早在糾正我的關鍵字
所以在我UITableView
類我嘗試註冊該小區像這樣:
override func viewDidLoad(){
super.viewDidLoad()
let coder: NSCoder = NSCoder()
let customCell: AnyClass = customCell(coder: coder)
table?.registerClass(customCell, forCellReuseIdentifier:"cell")
倒數第二行(就是我初始化customCell與NSCoder,如Xcode中要我)產生錯誤:
Cannot invoke 'init' with an argument list of type '(coder: NSCoder)'
如果我能我更願意建立自己的初始化沒有NSCoder。
如果我嘗試使用其他任何初始化然後Xcode中踢了一個錯誤的線沿線的:
Extra argument 'reuseIndenifier' in call
或
Missing argument in call
它將繼續抱怨,直到我使用的初始化與NSCoder 。我被迫使用這個初始化器。
請糾正我,如果我在這裏的方式,但對我來說,好像我陷入了catch 22的情況 - Xcode抱怨,如果我建立一個沒有編碼器的初始化器,然後當我嘗試使用初始化與它抱怨我使用的是編碼器。
儘管存在這種明顯的矛盾,但我相當確信這一切都是我在某個地方成爲笨拙的結果。
有沒有人有足夠的指點我在正確的方向?
你看了UITableView的編程指南? afaik這不是你如何使用UITableView和UITableViewCell的,但我可能是錯的。 initWithCoder初始化程序在使用故事板時被調用,並且不應該發生,因爲您通常會在UITableViewDataSource委託方法中初始化UITableViewCell對象。所以也許有更多的背景會對此有所幫助。 – believesInSanta 2014-11-25 11:53:38
我試圖創建一個自定義'UITableViewCell'編程 - 請這樣的問題:http://stackoverflow.com/questions/27103278/creating-a-uitableviewcell-programmatically-in-swift – Jimmery 2014-11-25 11:55:00
你可以嘗試使用'的init(風格樣式:UITableViewCellStyle, reuseIdentifier reuseIdentifier:String?),就像我說的,initWithCoder被接口生成器 – believesInSanta 2014-11-25 12:01:29