J'essaie actuellement de créer une cellule d'affichage de tableau personnalisé à l'aide de xCode 6.3 Swift 1.2. Pour une raison quelconque dans la méthode cellforRowAtIndexPath, je n'arrive pas à configurer ma variable de cellule. Le code sera compilé, mais quand cette ligne de code apparaîtra:
var cell:MessageCell = tableView.dequeueReusableCellWithIdentifier("messageCell") as! MessageCell
J'ai cette erreur: Impossible de convertir la valeur du type 'UITableViewCell' (0x1112f5a18) en 'CampusExchange.MessageCell' (0x10e8318f0).
Voici ma méthode complète: (J'utilise Parse si vous vous demandez comment je configure le message)
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:MessageCell = tableView.dequeueReusableCellWithIdentifier("messageCell") as! MessageCell
let message = messagesArray[indexPath.row]["Message"] as? String
cell.messageOutlet.text = message
return cell
}
merci pour toute aide que vous pourriez avoir. Je n'arrive pas à faire en sorte que cela fonctionne.
Il y a quelques choses que vous pouvez vérifier dans ce scénario:
Vérifiez si votre table est liée à votre classe, généralement par @IBOutlet weak var tableView: UITableView!
Enregistrez la cellule de la vue de table personnalisée: self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
Notez que vous utilisez "UITableViewCell" et l'identificateur "cell" même si votre cellule personnalisée a une classe et un identifiant différents.
Mettez votre cellule en file d'attente dans cellForRowAtIndexPath: let cell: MessageCell = self.tableView.dequeueReusableCellWithIdentifier("messageCell") as! MessageCell
Maintenant, vous utilisez l'identificateur de cellule correct.
Enregistrez votre méthode CustomCell dans viewDidLoad()
:
self.tableView.register(CustomCell.self, forCellReuseIdentifier: "Cell")
Dans viewDidLoad ()
// register custom table view cell from nib
self.tableView.registerNib(UINib(nibName: "MessageCell", bundle: nil), forCellReuseIdentifier: "messageCell")
J'ai eu le même message d'erreur. Mais pour moi le problème était que je n'avais pas défini la classe de ma cellule personnalisée dans le constructeur d'interface.
Dans mon cas, je n'ai pas changé la classe UITableViewCell. Au départ, c’est la classe DetailsTableViewCell mais j’ai supprimé et ajouté une nouvelle classe appelée TableViewCellClass. Mais j'oublie de changer le nom de la classe de cellule ici.
Donc, encore une fois, vérifiez et modifiez le nom de la classe TableViewCell ici voir la capture d'écran ci-dessous
Tout d'abord, je vous suggère de recréer votre classe de cellules en utilisant CocoaClass. J'ai eu une erreur assez similaire - j'ai créé un CollectionViewCell, et quand j'ai reconnu mon erreur, j'ai décidé de renommer simplement la classe parent. Cependant, le compilateur n'a pas remarqué d'erreur, j'ai eu cette erreur pendant la construction.
Syntaxe de Swift 3:
self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
Recréez votre classe en utilisant cocoaClass
et sélectionnez UItableViewCell
J'ai eu le même problème cela a fonctionné pour moi.
J'ai eu la même erreur. Comme obo2O le dit dans son commentaire, sa solution a fonctionné pour moi: