Maison > Questions et réponses > le corps du texte
si (!cell) {
cell = [[AddressTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:addressIdentifier];
>
Pourquoi devons-nous ajouter un jugement, écrire ceci, quand ce jugement sera-t-il rendu
怪我咯2017-05-02 09:27:41
Si vous ne jugez pas, un nouveau sera créé à chaque fois, car vous avez un alloc
ici.
Il y a généralement une ligne avant ce code :
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
Cette ligne sert à récupérer la cellule réutilisée. Si elle peut être récupérée, la cellule a de la mémoire et peut être réutilisée directement. Si elle ne peut pas être récupérée, vous devez la créer vous-même, c'est le code que vous avez posté.
De plus, vous pouvez également utiliser la méthode d'inscription :
-(void)registerNib:(nullable UINib *)nib forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(5_0);
-(void)registerClass:(nullable Class)cellClass forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0);
Si vous vous inscrivez, vous n’avez pas besoin de juger. D'une manière générale, on l'utilise ainsi :
[self.tableView registerNib:[UINib nibWithNibClass:className] forCellReuseIdentifier:reuseId];
//或者
[self.tableView registerClass:className forCellReuseIdentifier:reuseId];
Ensuite, la méthode tableView:cellForRowAtIndexPath:
ne nécessite pas de jugement supplémentaire, et peut être prise directement :
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SomeIdentifier"];
//do something
...