objective-c - tableviewcell创建
仅有的幸福
仅有的幸福 2017-05-02 09:25:41
0
1
471

if (!cell) {

cell = [[AddressTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:addressIdentifier];

}
为什么要加个判断,写这个,什么时候会走这个判断

仅有的幸福
仅有的幸福

répondre à tous(1)
刘奇

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
    ...
    
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal