Когда я анализирую свой проект, следующий код дает мне предупреждение о утечке. есть ли способ решить проблему утечки памяти?Потенциальная утечка объекта, выделенного в iphone
предупреждение:
Potential leak of an object allocated on line 38 and stored into 'addressBook'
пыльник мой код.
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
m_tableDataArray = [[[NSMutableArray alloc] init]autorelease];
NSMutableArray *listDate = [[[NSMutableArray alloc] init]autorelease];
ABAddressBookRef addressBook = ABAddressBookCreate();
NSArray *addresses = (NSArray *) ABAddressBookCopyArrayOfAllPeople(addressBook);
NSInteger addressesCount = [addresses count];
for (int i = 0; i < addressesCount; i++) {
ABRecordRef record = [addresses objectAtIndex:i];
NSString *firstName = (NSString *)ABRecordCopyValue(record, kABPersonFirstNameProperty);
NSString *lastName = (NSString *)ABRecordCopyValue(record, kABPersonLastNameProperty);
if(firstName != nil && lastName != nil){
NSString *contactFirstLast = [NSString stringWithFormat: @"%@ %@", firstName, lastName];
[listDate addObject:contactFirstLast];
}
[firstName release];
[lastName release];
}
m_tableDataArray = [[NSArray arrayWithArray:listDate] retain];
[addresses release];
addresses = nil;
[m_mainTable reloadData];
}
Спасибо айу ...
Вам необходимо освободить все, что вы создадите/скопируете. В этом случае ABAdressBookCreate() создает адресную книгу, и вы нигде не выпускаете ее. – EmilioPelaez
Вы имеете в виду этот объект, который я должен отпустить? 'ABAddressBookRef addressBook = ABAddressBookCreate();' –
объясните свой код Men's Что такое адресная книга, запись Что-то вроде этого. то кто-то может вам помочь – Ayaz