2009-07-24 6 views

Répondre

10

Le puits nullest0. La propriété row est de type int - peut-être que vous l'utilisez par erreur en tant qu'objet ou pointeur.

Vous indiquez que vous voulez la "ligne" réelle qui a été sélectionnée. Si vous voulez dire que vous voulez la cellulequi a été sélectionné, voici comment:

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 

Notez que si vous sélectionnez en quelque sorte une programmation ligne qui est pas actuellement visible sera de retour, nil.

+0

j'utilisais la méthode d'accès au tableau faux: -S – mjmdavis

0

Il renvoie le chemin à la ligne sélectionnée, pas la ligne (ou cellule) elle-même. IndexPath (0,0) est la première cellule de la première section. Selon le test que vous exécutez, cela peut être le résultat correct.

1

indexPath.section vous indique la section demandée.

indexPath.row vous indique quelle ligne de cette section elle veut.

Les deux commencent à 0.

Vous voulez faire quelque chose comme ceci:

if (indexPath.section == 0) {  // 1st section 
    if (indexPath.row == 0) return cell1; 
    if (indexPath.row == 1) return cell2; 
    if (indexPath.row == 2) return cell3; 
} else if (indexPath.section == 1) {  // 2nd section 
    if (indexPath.row == 0) return cell4; 
    if (indexPath.row == 1) return cell5; 
    if (indexPath.row == 2) return cell6; 
} 
return nil; 
Questions connexes