2

連絡先から名と姓を選択する必要があるアプリを構築しています。Build Analyzer で実行すると、このコードのチャンクでメモリ リークが発生しました。

ABMutableMultiValueRef fName = ABRecordCopyValue(person, kABPersonFirstNameProperty);
ABMutableMultiValueRef lName = ABRecordCopyValue(person, kABPersonLastNameProperty);    
if(fName){
    self.firstNameText.text = fName;
}
if (lName) {
    self.lastNameText.text = lName;
}
CFRelease(fName);
CFRelease(lName);

私はそれを修正するのに本当にうんざりしていましたが、できませんでした。親切に私を助けてください。

どんな種類の助けも非常に高く評価されます。

前もって感謝します!!

4

1 に答える 1

-3

こんにちは、これはデリゲート メソッドです。

in - (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person メソッドで、名の kABPersonFirstNameProperty、姓のプロパティの kABPersonLastNameProperty などの任意のユーザー情報を取得できます

  - (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {
// assigning control back to the main controller
[self dismissModalViewControllerAnimated:YES];
}

  - (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person {
NSString *firstname=(NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
Usernametf.text=firstname;
//  NSMutableDictionary *dict=[[NSMutableDictionary alloc] initWithObjectsAndKeys:firstname,@"FirstName", nil];
//[selectedemailArray addObject:dict];
   // NSLog(@"\n array is %@",selectedemailArray);


//[objDatabase insertArray:selectedemailArray forTable:@"EmailList"];
//[objDatabase insertDictionary:dict forTable:@"EmailList"];
//    [dict release];
//    dict =nil;

// remove the controller
[self dismissModalViewControllerAnimated:YES];
return NO;

}

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{
return NO;
}

それが機能しているかどうかを教えてください.. !!!!

ハッピーコーディング!!!!!

于 2012-11-08T06:50:17.413 に答える