Я пытался добавить нового человека в iPhone с помощью ABNewPersonViewController, но на iPhone 4 иногда отображается сообщение FaceTime, в котором говорится: «Ваш оператор может взимать плату за SMS-сообщения, используемые для активации видеовызова» (см. Скриншот, он на французском языке) , Я вообще ничего не делаю с 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);
}