Да, у вас есть, или у swift нет способа узнать, какой объект вы хотите сделать dequeue
, поэтому у вас есть nil
объект.
Вы должны использовать - dequeueReusableCellWithIdentifier:forIndexPath:
вместо - dequeueReusableCellWithIdentifier
Это потому, что первый один на самом деле возвращает AnyObject
в то время как dequeue
без indexpath возвращает AnyObject?
Для того, чтобы сделать ваш код работает, либо изменить ваш код до ...forIndexPath
или сделать это:
var cell: UITableViewCell?
if let cell = cell {
//dequeue here
} else {
cell = UITableViewCell(style: UITableViewCellStyle,
reuseIdentifier reuseIdentifier: String?) ...
}
//config cell
return cell
В случае, если вы вид делать человек-все-все-в-кода, вам необходимо зарегистрировать свой UITableViewCell
класс tableView
как предполагает Mert.
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier identifier: "Cell")
Пример кода:
// I remove all other things, just focus on what you need
override func viewDidLoad() {
super.viewDidLoad()
table.delegate = self
table.dataSource = self
table.registerClass(UITableViewCell.self, forCellReuseIdentifier identifier: "Cell")
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell
configureCell(cell, atIndexPath: indexPath)
return cell
}
Вы не можете использовать String ?. Вам нужно указать допустимую строку или она не будет компилироваться. Можете ли вы опубликовать код dequeue (у вас есть только комментарий)? – 4thSpace
Я скопировал его из документации, он пишет 'reuseIdentifer' как' String? '. Это странно. Ну, проверьте мой пример кода, он должен работать.Это для swift 1.2, если вы используете swift 1.1, измените 'as!' На 'as' –
Множество ошибок:« Использование неразрешенного идентификатора »для CellReuseIdentifier« »для registerClass. Также «Использование неразрешенного идентификатора« configureCell ». Наверное, лучше всего, если вы сначала попробуете код. Это похоже на слизистую грязь у стены прямо сейчас. – 4thSpace