2011-03-23 5 views
0

Question simple: d'où proviennent les arguments tableView et section? Le code réel de la méthode return [self.listData count]; ne les mentionne même pas.D'où proviennent les arguments de cette méthode?

Voici mon code d'interface:

@interface Simple_TableViewController : UIViewController 
<UITableViewDelegate, UITableViewDataSource> 
{ 
NSArray *listData; 
} 

@property (nonatomic, retain) NSArray *listData; 

@end 

Et cela est tout le code de mise en œuvre:

#import "Simple_TableViewController.h" 

@implementation Simple_TableViewController 
@synthesize listData; 

- (void)viewDidLoad { 
NSArray *array = [[NSArray alloc] initWithObjects:@"Sleepy", @"Sneezy", 
        @"Bashful", @"Happy", @"Doc", @"Grumpy", @"Dopey", @"Thorin", 
        @"Dorin", @"Nori", @"Ori", @"Balin", @"Dwalin", @"Fili", @"Kili", 
        @"Oin", @"Gloin", @"Bifur", @"Bofur", @"Bombur", nil]; 
self.listData = array; 
[array release]; 
[super viewDidLoad]; 
} 

- (void)viewDidUnload { 
self.listData = nil; 
} 


- (void)dealloc { 
[listData release]; 
[super dealloc]; 
    } 


#pragma mark - 
#pragma mark Table View Data Source Methods 
- (NSInteger)tableView:(UITableView *)tableView 
    numberOfRowsInSection:(NSInteger)section { 
    return [self.listData count]; 
} 

Je veux juste savoir comment la méthode ne (NSInteger)tableView: (UITableView *)numberOfRowsInSection: recevoir ces arguments? Bien sûr, cela arrive partout; Je veux juste le comprendre.

Répondre

0

La classe Simple_TableViewController est susceptible de gérer une seule table avec une seule section. Étant donné que, les paramètres tableView et section ne sont pas importants car ils ne peuvent être qu'une chose: un pointeur vers la table et 0, respectivement.

+0

Cela est vrai, mais cela signifie-t-il que tous les arguments de toutes les méthodes ne sont pas requis? Ou ont-ils des défauts? De plus, je sais que cette méthode est déclenchée par le délégué, mais comment puis-je savoir quel événement déclenche le déclenchement? –

+0

La source de données de table doit implémenter certaines méthodes avec des interfaces spécifiques. -tableView: numberOfRowsInSection: est un bon exemple - la source de données ne parvient pas à réécrire le nom de la méthode pour éliminer les paramètres inutiles - si c'est le cas, comment UITableView sait-il quelle méthode appeler? Ainsi, dans ce cas, la table donne à sa source de données plus d'informations qu'elle n'en a besoin pour répondre à la question "Combien y a-t-il de lignes?" La méthode n'est pas obligée d'utiliser tous ses paramètres. – Caleb

0

Votre classe de contrôleurs d'affichage ajoute la prise en charge de ces méthodes de rappel via UITableViewDelegate et UITableViewDataSource. Vous ajoutez ce support dans votre fichier .h via <UITableViewDelegate, UITableViewDataSource>. Ces classes sont intégrées au framework Cocoa Touch et vous les utilisez simplement. Lorsque la table est (re) chargée, ces méthodes de rappel sont appelées si vous les avez définies (certaines sont obligatoires, d'autres facultatives).

Questions connexes