Désolé pour le titre long. En substance, je veux accomplir la même chose que l'application de calendrier pour les détails de l'événement. La première cellule indique le titre et la date de l'événement. La seconde affiche une alerte, s'il y en a une, sinon Notes, s'il y en a, ou rien d'autre si aucun de ces champs n'est présent.Modifier le nombre de différentes UITableViewCells avec un ordre particulier comme l'application Calendrier
La façon dont je fais est maintenant un très long si la condition dans cellForRowAtIndexPath:
if(indexPath.row == 0) {
TitleCell *titlecell = [[TitleCell alloc] init];
// config cell to do title here, always
return titlecell;
} else if (indexPath.row == 1 && foo) {
FooCell *foocell = [[FooCell alloc] init];
// config cell to show foo, if it exists
return foocell;
} else if (indexPath.row == 1 && bar) {
BarCell *barcell = [[BarCell alloc] init];
// foo doesn't exist, but bar, so show bar in cell 1
return barcell;
} // etc etc
qui est vraiment laid, et que je crée les cellules dans le cas et le retour, l'analyseur statique me dire que chaque l'un d'entre eux est une fuite potentielle. Il n'y en a pas d'autre, car j'ai besoin de couvrir tous les scénarios de toute façon, et cela donne aussi un avertissement sur la méthode potentiellement ne rien retourner.
Y a-t-il un meilleur moyen de rendre ce produit plus propre et de ne pas me donner d'avertissement?
Merci!
Christoph
Merci, mais je ne suis pas sûr que ça marchera si Foo n'existe pas. Dans ce cas, Bar devrait être dans la cellule 1. Ou est-ce que je manque quelque chose? – Christoph
Vous avez raison, je l'ai réparé maintenant. – Aleph7
Merci à vous deux d'avoir fait remarquer que je suis, en fait, une fuite de mémoire. J'ai choisi cela comme la réponse acceptée pour son code. – Christoph