У меня есть ниже в одной из моих функций, чтобы скопировать контакты на телефоне:
ABAddressBookRef addressbook = ABAddressBookCreate();
if(self.contacts != nil)
[contacts release];
self.contacts = (NSArray *)ABAddressBookCopyArrayOfAllPeople(address book);
contacts - это NSArray, объявленный в классе, сохраненный, синтезированный и др.
Затем массив используется в другом контроллере представления:
if (!self.contactsViewController) {
self.contactsViewController = [[[contactsViewController alloc] initWithNibName:@"ContactsViewController" bundle:nil] autorelease];
}
self.contactsViewController.contacts = self.contacts;
[self.navigationController pushViewController:self.contactsViewController animated:YES];
Я знаю, что вы должны освободить адресную книгу, но когда я это сделаю, у контактов, скопированных в viewController, останутся только их имена; все телефонные номера и электронные письма исчезают, когда я звоню им с ABPersonViewController. С другой стороны, он отлично работает, когда я не выпускаю адресную книгу, но теряет память по всему полу. Что происходит и как мне это исправить?