如何通过 ContactsManager(Kekiiwaa) 添加具有多个 phone 值的联系人
How to add a contact with multiple phone value by ContactsManager(Kekiiwaa)
我已经习惯了 Kekiiwaa 的 ContactsManager (https://github.com/Kekiiwaa/ContactsManager),但我不知道如何添加多个 phone 的联系人。
这是添加联系人的示例代码 phone:
[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);
}];
那么如何添加与多个 PHONE 的联系人?我尝试使用:
@[@{@"label":@"mobile",@"value":@"999999999999”},@{@"label":@"mobile",@"value":@"999999999999"}]
但是不行。
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");
}];
对于 phone 数字字典中的标签 Work
也有效。
哦,我刚做完。问题在这里:
[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);
}];
库正在使用 ARRAY phoneList 中的每个字典重新声明,因此 phone 是新创建的,而不是添加到现有联系人中。所以我想添加一个有多个 phone 号码的联系人,需要得到 multiphone out side block。我已经完成了:
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);
}];
我已经习惯了 Kekiiwaa 的 ContactsManager (https://github.com/Kekiiwaa/ContactsManager),但我不知道如何添加多个 phone 的联系人。 这是添加联系人的示例代码 phone:
[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);
}];
那么如何添加与多个 PHONE 的联系人?我尝试使用:
@[@{@"label":@"mobile",@"value":@"999999999999”},@{@"label":@"mobile",@"value":@"999999999999"}]
但是不行。
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");
}];
对于 phone 数字字典中的标签 Work
也有效。
哦,我刚做完。问题在这里:
[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);
}];
库正在使用 ARRAY phoneList 中的每个字典重新声明,因此 phone 是新创建的,而不是添加到现有联系人中。所以我想添加一个有多个 phone 号码的联系人,需要得到 multiphone out side block。我已经完成了:
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);
}];