2016-12-15 3 views
0

Я использую следующий код, чтобы создать контакт:IOS Ошибка Создание Контакт

CNContactRelation *rel = [[CNContactRelation alloc] initWithName:@"John"]; 
CNLabeledValue *lv = [[CNLabeledValue alloc] labeledValueBySettingLabel:@"_$!<Friend>!$_" value:rel]; 

NSMutableArray *arr = [NSMutableArray new]; 
[arr addObject:lv]; 

CNMutableContact *contact = [[CNMutableContact alloc] init]; 
contact.givenName = @"Joe"; 
[contact setContactRelations:arr]; 

CNSaveRequest *request = [[CNSaveRequest alloc] init]; 
[request addContact:contact toContainerWithIdentifier:nil]; 

NSError *saveError; 
if (![store executeSaveRequest:request error:&saveError]) 
     NSLog(@"error = %@", saveError); 

я получаю эту ошибку на экономии:

error = Error Domain=CNErrorDomain Code=2 "(null)" UserInfo={CNKeyPaths=(
contactRelations)} 

Если удалить строку, которая устанавливает контакт отношения ([contact setContactRelations: arr]), тогда контакт создается просто отлично.

Кто-нибудь знает, что не так с массивом отношений контактов, или это не разрешено?

+0

У меня такая же проблема. У вас были какие-то решения? – gamal

+0

Нет, я боюсь, что нет. Функция, которая нуждалась в этом, была удалена из приложения, поэтому не нужно было беспокоиться об этом. – user982687

ответ

0

Попробуйте это. Это сработало для меня. Swift 3.1. Необходимо импортировать «Контакты»

let store = CNContactStore() 
let contact = CNMutableContact() 
contact.givenName = "first Name" 
contact.familyName = "Last Name" 

let workEmail = CNLabeledValue(label:CNLabelWork, value:"EMAIL" as NSString) 
contact.emailAddresses = [workEmail] 

let homePhone = CNLabeledValue(label: CNLabelWork, value: CNPhoneNumber(stringValue :NUMBER)) 
contact.phoneNumbers = [homePhone] 



let saveRequest = CNSaveRequest() 
saveRequest.add(contact, toContainerWithIdentifier:nil) 
try! store.execute(saveRequest) 
Смежные вопросы