Peut-être que quelqu'un peut répondre à celui-ci facilement. Je travaillais sur une application iphone où obtenir des informations pour chaque ligne de cellForRowAtIndexPath Je créais un nouveau carnet d'adresses à chaque fois appelant:Comment corriger une variable d'instance de carnet d'adresses?
ABAddressBookRef addressBook = ABAddressBookCreate();
Cela fonctionne bien, sauf qu'il est lent et ne semble pas correct de créer un nouvel ab pour chaque ligne. J'ai donc créé une variable d'instance addressBook mais je n'arrive pas à l'utiliser sans crash. (Signal reçu du programme: "EXC_BAD_ACCESS".) J'imagine que je ne l'ai pas configuré correctement, mais que je n'ai pas eu de chance de trouver quoi que ce soit spécifiquement dans la documentation.
Merci mille fois d'avance à tous ceux qui peuvent aider.
Dans mon fichier .H Je l'ai fait:
ABAddressBookRef addressBook;
@property(nonatomic, readwrite) ABAddressBookRef addressBook;
Puis dans mon fichier .m:
-(id)initWithStyle:(UITableViewStyle)style
{
if (self = [super initWithStyle:style]) {
addressBook = ABAddressBookCreate();
}
return self;
}
Pourquoi créez-vous un 'ABAddressBookRef' pour chaque ligne? Ils pointent tous vers le même carnet d'adresses système partagé. Il peut être plus logique d'en utiliser une qui est utilisée par toutes les lignes. –