UITableViewController
не имеет функции, которая возвращает CREWWorkCell
, которую вы можете переопределить. Используйте значение по умолчанию UITableViewCell
как возвращаемое значение, и все будет нормально работать с настраиваемыми ячейками.
В классе UITableViewController использовать следующую функцию:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { // Note that the return value is UITableViewCell and not CREWWorkCell
//get the class name from the database and put it in a variable called myClassName. Then
if myClassName == "CREWWorkCell" {
let cell : CREWWorkCell = tableView.dequeueReusableCellWithIdentifier("cell identifier 1", forIndexPath: indexPath) as! CREWWorkCell //of course you should cast to your custom class to be able to use it
return cell
} else if myClassName == "AnotherCellClass" {
let cell : AnotherCellClass = tableView.dequeueReusableCellWithIdentifier("cell identifier 2", forIndexPath: indexPath) as! AnotherCellClass
return cell
}
//do the same if you have other custom classes etc...
return UITableViewCell()
}
С Swift вы не можете бросить к динамическому типу (посмотрите here). Таким образом, вы не можете бросить к типу, который вы кладете в переменной, используя, например:
var myClassName = CREWWorkCell.self
или
var myClassName = CREWWorkCell().dynamicType
потому что myClassName
будут оценены во время выполнения, другими словами, это динамический тип. Но оператор литья ожидает своей правой стороны статический тип , тип, который уже известен и не нуждается в оценке во время выполнения. Эта функция позволяет Swift обеспечивать безопасность типов.
Я бы предложил вам переосмыслить способ создания пользовательских ячеек гораздо проще.
Поскольку мне нужно использовать пользовательские классы для ячеек, я не вижу, как это сделать. – PatriciaW
CREWWorkCell уже является подклассом UITableViewCell. он работает просто отлично – Carpsen90
Если у меня есть несколько подклассов, как я могу указать, какой из них использовать? Объекты в каждой ячейке указаны в них. – PatriciaW