У меня довольно странный случай неудачи вниз, который я не могу понять.Swift: Незначительное падение вниз
У меня почти идентичный код в двух UITableViewController
. ProjectTableViewController
отображает список Project
, а его источник данных - [Project]
. NewsfeedsTableViewController
отображает список Newsfeed
, но Newsfeed
может содержать различные типы исходных данных, включая Project
.
В зависимости от типа исходных данных каждая ячейка NewsfeedsTableViewController
отбрасывается в соответствующий подкласс UITableViewCell
.
ProjectTableViewCell
Подкласс UITableViewCell
и используется как в ProjectTableViewController
, так и NewsfeedsTableViewController
.
Теперь самое интересное то, что код работает без проблем в ProjectTableViewController
но падает в NewsfeedsTableViewController
, давая следующее сообщение об ошибке:
Could not cast value of type 'UITableViewCell' (0x102e68128) to 'sample_app.ProjectTableViewCell' (0x1010ce6d0).
Я следующие коды в каждом классе:
ProjectTableViewController.swift
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let project = projects[indexPath.row]
let cell = tableView.dequeueReusableCellWithIdentifier("ProjectTableViewCell") as! ProjectTableViewCell
cell.projectTitle.text = project.title
cell.projectKeywords.text = project.keywords
return cell
}
NewsfeedsTableViewController.swift
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let newsfeed = self.newsfeeds[indexPath.row]
switch newsfeed.newsfeedableType {
case "Project":
let cell = tableView.dequeueReusableCellWithIdentifier("NewsfeedTableViewCell") as! ProjectTableViewCell
let source = newsfeed.newsfeedable as! Project
cell.projectTitle.text = source.title
cell.projectKeywords.text = source.keywords
return cell
default:
let cell = tableView.dequeueReusableCellWithIdentifier("NewsfeedTableViewCell")!
cell.textLabel!.text = newsfeed.newsfeedableType + String(newsfeed.id)
return cell
}
}
I хотел бы понять, что вызывает эту проблему.
http://stackoverflow.com/questions/30429269/cast-value-of-type-uitableviewcell-to-custom-cell или http://stackoverflow.com/questions/29812168/could-not-cast-value -of-type-uitableviewcell-to-appname-customcellname поможет вам битва –
@ViralSavaj благодарит! эти ссылки заставили меня снова взглянуть на раскадровку ... и проблема была там! – Harfangk