当我在我的应用程序中发现一些不同类型的内存泄漏时,我正在使用 AddressBook 框架:
Leaked Object # Address Size Responsible Library Responsible Frame
__NSCFArray 8 < multiple > 256 Bytes AddressBook ABCMultiValueInsertAndCreateIdentifier
__NSCFString 7 < multiple > 224 Bytes AppSupport _sqliteStatementApplyValuesFromRecordWithNullValue
Malloc 32 Bytes 8 < multiple > 256 Bytes AddressBook ABCMultiValueInsertAndCreateIdentifier
__NSCFArray 8 < multiple > 256 Bytes AddressBook ABCMultiValueInsertAndCreateIdentifier
ABCMultiValue 8 < multiple > 256 Bytes AddressBook ABCMultiValueCreate
Malloc 32 Bytes 7 < multiple > 224 Bytes AddressBook ABCMultiValueInsertAndCreateIdentifier
__NSCFArray 7 < multiple > 224 Bytes AddressBook ABCMultiValueInsertAndCreateIdentifier
Malloc 32 Bytes 5 < multiple > 160 Bytes AddressBook ABCMultiValueInsertAndCreateIdentifier
这是我的代码:
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person {
SDAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
ABMultiValueRef multiRef = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSString *number = (__bridge NSString *) ABMultiValueCopyValueAtIndex(multiRef, 0);
NSString *firstname = (__bridge NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
NSString *lastname = (__bridge NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty);
number = (number ? number : @"");
firstname = (firstname ? firstname : @"");
lastname = (lastname ? lastname : @"");
NSDictionary *dic = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:number, firstname, lastname, nil] forKeys:[NSArray arrayWithObjects:kSDPhoneNumberKey, kSDFirstnameKey, kSDLastnameKey, nil]];
NSMutableArray *numberArray = [NSMutableArray arrayWithArray:appDelegate.contactArray];
[numberArray addObject:dic];
[appDelegate setContactArray:numberArray];
[self.tableView reloadData];
[self dismissModalViewControllerAnimated:YES];
return NO;
}
有人知道哪些线路是造成这些泄漏的原因吗?