que je fais cela avec UISwitchs et UITextFields ...Ajout @property UISwitch à TableView Causes RetainCount problèmes
J'ai déclaré UISwitch comme propriété dans le fichier d'en-tête, parce que je veux accéder à sa valeur dans plusieurs méthodes différentes dans ma classe.
J'ajoute les UISwitch à un de mes TableViewCells, en utilisant le code suivant:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
mySwitch = [[[UISwitch alloc] initWithFrame:CGRectZero] autorelease];
cell.accessoryView = mySwitch;
mySwitch.on = YES;
return cell;
}
Comme il est, les retainCounts sont partout. Le mySwitch Retain est de 2 au moment où la cellule a été placée sur l'écran, et chaque fois que j'appuie sur l'interrupteur, le nombre de retenue augmente, jusqu'à ce qu'il atteigne 4, puis il semble rester là.
Évidemment, il me manque quelque chose. Si quelqu'un peut me diriger dans la bonne direction, ce serait grandement apprécié.
Évidemment, je ne comprends pas la bonne utilisation de «soi», je vais devoir faire quelques lectures sur ce sujet. – Chris
Oui, c'est une partie très importante de l'objectif-c lors de l'utilisation des propriétés. Fondamentalement, si vous n'utilisez pas self, le getter ou setter synthétisé ne sera pas utilisé. Vous accéderez directement au pointeur. – rickharrison