2010-08-03 4 views
0

Je pense que le plus gros problème que j'ai à comprendre la programmation est de comprendre ce que fait une méthode particulière. Par exempleComment lire les méthodes de l'Objective C

- (BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex 

Quand je regarde la méthode ci-dessus, je sais qu'il retourne un booléen et que la méthode reçoit ce qui suit.

  1. NSTableView
  2. NSTableColumn
  3. NSInteger

Cependant, je ne comprends pas ce que je dois fournir d'utiliser correctement la méthode. Est-ce que je retourne juste un booléen?

Répondre

1

Cette méthode sera appelée par la table (ou quelque chose) sur votre délégué (la classe dans laquelle vous implémentez cette méthode) lorsque la table doit savoir si une ligne et une colonne peuvent être modifiées. Vous avez juste besoin de retourner YES ou NO pour indiquer si vous voulez le laisser être édité.

Ceci est une exemple d'implémentation:

-(BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { 
    return NO; 
} 

Cela signifie la table ne peut jamais être modifié.

Une mise en œuvre plus complexe comme celui-ci laisserait que la première ligne soit modifiable:

-(BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { 
    if (rowIndex == 0) 
     return YES; 
    else 
     return NO; 
    //This can be shortened to: 
    //return rowIndex == 0; 
} 
+0

Comment pouvez-vous utiliser return rowIndex == 1 si vous êtes censé retourner YES ou non? – lampShade

+0

'rowIndex == 1' est évalué avant le retour de la fonction. l'instruction est soit 'true' (' YES') soit 'false' (' NO') et la valeur qu'elle évalue est celle qui est retournée –

+0

@lampShade: Voir ma mise à jour, et le commentaire de @Paul W –

1

Il se résume à un dicton: le code vous indique comment, commentaires vous dire pourquoi.

Si vous écrivez une méthode, vous devez savoir pourquoi vous voulez la méthode et la documenter en conséquence, a.k.a. commentaires. Si vous substituez une méthode, alors vous espérez que le producteur de la méthode documentera ce que fait la méthode.

Si vous êtes plonger dans le développement de l'iPhone sans un peu de fond de programmation, vous devriez au moins lire le Introduction to The Objective-C Programming Language. Si vous voulez savoir ce qu'une méthode particulière fait dans votre code, vous pouvez toujours cliquer avec le bouton droit sur le nom de la méthode et choisir "Rechercher le texte dans la documentation" pour en savoir plus.

0

Le nom de la méthode tableView: shouldEditTableColumn: row: devrait vous indiquer qu'il s'agit de modifier des lignes et des colonnes dans une vue tabulaire. Vous pourriez probablement deviner que, puisqu'il renvoie un booléen, il est appelé pour déterminer avec une vue de table devrait éditer la rangée fournie de la colonne fournie. Cependant, ce serait juste une supposition, donc à ce stade (si je n'avais pas utilisé cette méthode seulement hier et donc savoir exactement à quoi elle sert) je commencerais à googler pour cela (ou en utilisant la recherche Xcode si j'avais accès à Xcode).

Un conseil utile pour la documentation Googling Cocoa est de rechercher uniquement sur le site: developer.apple.com, donc nous allons essayer site:developer.apple.com tableView:shouldEditTableColumn:row:. Le meilleur coup dans ce cas est NSTableViewDelegate qui est celui que nous voulons.

Questions connexes