0
一個新的條目在iOS系統中,我試圖創建在地址簿中通過ABUnknownPersonViewController使用此代碼的新條目(這是一個的UITableViewController):試圖建立地址簿通過ABUnknownPersonViewController在iOS
- (void) tableView:(UITableView *)tableView
accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSString *phoneNumber = [[cell textLabel] text];
ABRecordRef record = ABPersonCreate();
CFErrorRef error = NULL;
ABMutableMultiValueRef phone =
ABMultiValueCreateMutable(kABPersonPhoneProperty);
ABMultiValueAddValueAndLabel
(phone, phoneNumber, kABPersonPhoneMobileLabel, NULL);
bool didSet = ABRecordSetValue(record, kABPersonPhoneProperty, phone,
&error);
if (!didSet) {
return;
}
ABUnknownPersonViewController *viewController =
[[[ABUnknownPersonViewController alloc] init] autorelease];
[viewController setUnknownPersonViewDelegate:self];
[viewController setAllowsAddingToAddressBook:YES];
[viewController setAllowsActions:NO];
[viewController setDisplayedPerson:record];
[[self navigationController] setNavigationBarHidden:NO animated:NO];
[[self navigationController] pushViewController:viewController
animated:YES];
CFRelease(record);
CFRelease(phone);
}
編輯: 但它顯然崩潰,因爲phoneNumber被格式化之前被添加到地址簿(ej「987654321」成爲「987 654 321」)。如果我用常量字符串(@「987654321」)替換phoneNumber,則所有內容都可以正常運行。此外,如果我增加值不是爲了ABPersonPhoneProperty,而是爲ABPersonEmailProperty正常運行。
任何幫助?
您是否嘗試過創建@property(複製)NSString * selectedPhoneNumber?如果你創建一個屬性,當你爲它分配textLabel文本時,它將被複制。當選擇下一個單元格時,它將釋放並複製。 – bryanmac 2011-12-29 21:06:25
「其他任何字符串」是什麼意思?一個常量@「字符串」?任何使用[[NSString alloc] init ...]創建的字符串? – 2011-12-29 21:11:15
@bryanmac指定複製的屬性不能解決問題。我會繼續嘗試。 – caliopigio 2011-12-29 22:32:17