Ios 如何通过ContactsManager(Kekiiwaa)添加具有多个电话号码的联系人
我曾经联系过Kekiiwaa()的经理,但我不知道如何使用多部手机添加联系人。 以下是使用一部手机添加联系人的示例代码:Ios 如何通过ContactsManager(Kekiiwaa)添加具有多个电话号码的联系人,ios,objective-c,ios-contacts,Ios,Objective C,Ios Contacts,我曾经联系过Kekiiwaa()的经理,但我不知道如何使用多部手机添加联系人。 以下是使用一部手机添加联系人的示例代码: [self.contactsManager addContactName: @"Tefany" lastName: @"Jhonson" phones: @[@{@"label":@"mobile",@"value":@"731782982"}]
[self.contactsManager addContactName: @"Tefany"
lastName: @"Jhonson"
phones: @[@{@"label":@"mobile",@"value":@"731782982"}]
emails: @[@{@"label":@"work",@"value":@"tefany@work.com"}]
birthday: nil completion:^(BOOL wasAdded) {
NSLog(@"%i",wasAdded);
}];
那么如何添加多部手机的联系人?我尝试使用:
@[@{@“label”:“mobile”,@“value”:“9999999999”},{@“label”:“mobile”,@“value”:“9999999999”}]
但这是行不通的
p/s:很抱歉我的英语水平不好,谢谢你的帮助!我从Github下载了repo,并尝试了下面的代码片段,但没有成功
[self.contactsManager addContactName:@"Test"
lastName:@"Name"
phones:@[@{
@"value":@"499034699748",
@"label":@"Mobile"},
@{
@"value":@"349034699748",
@"label":@"Home"
}]
emails:@[@{
@"value":@"mail@mail.com",
@"label": @"home e-mail"
}]
birthday:nil
image:nil
completion:^(BOOL wasAdded) {
NSLog(@"Contact was %@ added",wasAdded ? @"" : @"NOT");
}];
对于电话号码字典中的标签,工作也有效。哦,我刚刚做了。问题是:
[phonesList enumerateObjectsUsingBlock:^(NSDictionary *phone, NSUInteger idx, BOOL *stop) {
ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType);
ABMultiValueAddValueAndLabel(multiPhone, (__bridge CFTypeRef)(phone[@"value"]), (__bridge CFStringRef)(phone[@"label"]), NULL);
ABRecordSetValue(record, kABPersonPhoneProperty, multiPhone, nil);
}];
lib正在使用数组phoneList中的每个字典重新定义,因此手机将被创建为新的,而不是添加到现有联系人。因此,我认为要添加具有多个电话号码的联系人,需要将multiphone移出侧块。我已经完成了以下操作:
ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType);
[phonesList enumerateObjectsUsingBlock:^(NSDictionary *phone, NSUInteger idx, BOOL *stop) {
ABMultiValueAddValueAndLabel(multiPhone, (__bridge CFTypeRef)(phone[@"value"]), (__bridge CFStringRef)(phone[@"label"]), NULL);
ABRecordSetValue(record, kABPersonPhoneProperty, multiPhone, nil);
}];
尝试将第二个键
标签
的值设置为@“工作”。还可以将键值
的值设置为10位数字(如标准手机号码)如我所见,ContactsManager是一个旧的库,使用AddressBook框架。苹果建议如果您的目标是iOS 9或更高版本,则使用ContactsFramework。要在目标为iOS 9或更高版本的应用程序中处理用户的联系信息,建议您使用Contacts和ContactsUI框架中定义的API。
哦,我明白了。这是应用程序使用AddressBook框架,我只是维护它。我在添加多部手机的联系人时遇到问题。我将在下一个项目中尝试Apple Contacts框架。但是你能帮我解决我的问题吗?