我尝试使用ABNewPersonViewController在iPhone中添加一个新人,但在iPhone 4上,有时会显示一条FaceTime消息,说“您的运营商可能会对用于激活视频通话的短信收费”(请参阅屏幕截图,它是法语版) 。我根本不做与FaceTime有关的任何事情。我怀疑这是iOS本身的一个错误。以前有人见过这个,以及避免这个消息的解决方法吗?
我用来调用ABNewPersonViewController的代码:
- (IBAction)addContactButtonDidClick
{
ABNewPersonViewController *newPersonController = [[ABNewPersonViewController alloc] init];
newPersonController.newPersonViewDelegate = self;
// Prefill person
ABRecordRef newPerson = ABPersonCreate();
ABRecordSetValue(newPerson, kABPersonFirstNameProperty, person_.firstName, nil);
ABRecordSetValue(newPerson, kABPersonLastNameProperty, person_.lastName, nil);
ABRecordSetValue(newPerson, kABPersonNoteProperty, person_.note, nil);
ABRecordSetValue(newPerson, kABPersonJobTitleProperty, person_.speciality, nil);
// Prefill phone
ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType);
if (0 < [person_.telephone length])
ABMultiValueAddValueAndLabel(multiPhone, person_.telephone, kABWorkLabel, NULL);
if (0 < [person_.mobile length])
ABMultiValueAddValueAndLabel(multiPhone, person_.mobile, kABPersonPhoneMobileLabel, NULL);
ABRecordSetValue(newPerson, kABPersonPhoneProperty, multiPhone,nil);
CFRelease(multiPhone);
// Prefill email
ABMutableMultiValueRef multiEmail = ABMultiValueCreateMutable(kABMultiStringPropertyType);
if (0 < [person_.email length])
ABMultiValueAddValueAndLabel(multiEmail, person_.email, kABWorkLabel, NULL);
ABRecordSetValue(newPerson, kABPersonEmailProperty, multiEmail, nil);
CFRelease(multiEmail);
// Prefill address
ABMutableMultiValueRef multiAddress = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType);
NSMutableDictionary *addressDictionary = [[NSMutableDictionary alloc] init];
if (0 < [person_.address length])
[addressDictionary setObject:person_.address forKey:(NSString*)kABPersonAddressStreetKey];
if (0 < [person_.city length])
[addressDictionary setObject:person_.city forKey:(NSString*)kABPersonAddressCityKey];
if (0 < [person_.postalCode length])
[addressDictionary setObject:person_.postalCode forKey:(NSString*)kABPersonAddressZIPKey];
ABMultiValueAddValueAndLabel(multiAddress, addressDictionary, kABWorkLabel, NULL);
ABRecordSetValue(newPerson, kABPersonAddressProperty, multiAddress, nil);
CFRelease(multiAddress);
newPersonController.displayedPerson = newPerson;
// Show contact view in a modal view
UINavigationController *personNavController = [[UINavigationController alloc] initWithRootViewController:newPersonController];
personNavController.navigationBar.tintColor = UIColorFromRGB(0xec7930);
[self presentModalViewController:personNavController animated:YES];
[personNavController release];
[newPersonController release];
CFRelease(newPerson);
}