Как добавить контакт с несколькими значениями телефона с помощью ContactsManager(Kekiiwaa)

Я привык к ContactsManager из Kekiiwaa ( https://github.com/Kekiiwaa/ContactsManager) и не знаю, как добавить контакт с несколькими телефонами. Вот пример кода для добавления контакта с одним телефоном:

[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":@"999999999999”},@{@"label":@"mobile",@"value":@"999999999999"}]

Но это не сработает.

P / s: извините за мой плохой английский, спасибо за вашу помощь!

2 ответа

Решение

О, я только что сделал. Проблема здесь:

[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, поэтому телефон создается новым, а не добавляется к существующему контакту. Поэтому я думаю, чтобы добавить контакт с несколькими телефонными номерами, нужно вывести боковой блок мультифона. И я сделал с этим:

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);
}];

Я скачал репозиторий с Github и попробовал фрагмент кода ниже, чем он работал.

[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");
                          }];

И для этикетки внутри словаря телефонных номеров Work тоже работает.

Другие вопросы по тегам