Как обновлять / объединять контакты в CNContact


3 принят

Вы можете заменить свой номер только именами

CNSaveRequest * saveRequest = [[CNSaveRequest alloc]init];
    CNContactStore * store = [[CNContactStore alloc]init];

    NSArray*  arrFetchedcontact = nil;
    @try {

        NSError * err = nil;
        NSArray * keytoFetch = @[CNContactGivenNameKey,CNContactFamilyNameKey,CNContactPhoneNumbersKey];
        NSPredicate * predicate = [CNContact predicateForContactsMatchingName:GivenNames];
        arrFetchedcontact = [store unifiedContactsMatchingPredicate:predicate keysToFetch:keytoFetch error:&err];
    }
    @catch (NSException *exception) {
        NSLog(@"description = %@",[exception description]);
    }

    if([arrFetchedcontact count] > 0)
    {

        NSLog(@"ArrFetchedContact %@",arrFetchedcontact);


        CNMutableContact * contactToUpdate = [[arrFetchedcontact objectAtIndex:0] mutableCopy];
        NSMutableArray * arrNumbers = [[contactToUpdate phoneNumbers] mutableCopy];
        [arrNumbers removeObjectAtIndex:0];

        CNLabeledValue * homePhone = [CNLabeledValue labeledValueWithLabel:CNLabelPhoneNumberMobile value:[CNPhoneNumber phoneNumberWithStringValue:FieldNumbers]];

        NSLog(@"Print Homephone %@",homePhone);


        [arrNumbers addObject:homePhone];
        [contactToUpdate setPhoneNumbers:arrNumbers];

        [saveRequest updateContact:contactToUpdate];

        @try {

            NSLog(@"Success %d",[store executeSaveRequest:saveRequest error:nil]);


        }
        @catch (NSException *exception) {
            NSLog(@"description = %@",[exception description]);
        }
    }

Номер поля - это номер, который вы хотите заменить данным именем

Данное имя - это имя для человека с таким числом

ИОС, Objective-C, iphone, cncontact,

ios,objective-c,iphone,cncontact,

0

Ответов: 1


3 принят

Вы можете заменить свой номер только именами

CNSaveRequest * saveRequest = [[CNSaveRequest alloc]init];
    CNContactStore * store = [[CNContactStore alloc]init];

    NSArray*  arrFetchedcontact = nil;
    @try {

        NSError * err = nil;
        NSArray * keytoFetch = @[CNContactGivenNameKey,CNContactFamilyNameKey,CNContactPhoneNumbersKey];
        NSPredicate * predicate = [CNContact predicateForContactsMatchingName:GivenNames];
        arrFetchedcontact = [store unifiedContactsMatchingPredicate:predicate keysToFetch:keytoFetch error:&err];
    }
    @catch (NSException *exception) {
        NSLog(@"description = %@",[exception description]);
    }

    if([arrFetchedcontact count] > 0)
    {

        NSLog(@"ArrFetchedContact %@",arrFetchedcontact);


        CNMutableContact * contactToUpdate = [[arrFetchedcontact objectAtIndex:0] mutableCopy];
        NSMutableArray * arrNumbers = [[contactToUpdate phoneNumbers] mutableCopy];
        [arrNumbers removeObjectAtIndex:0];

        CNLabeledValue * homePhone = [CNLabeledValue labeledValueWithLabel:CNLabelPhoneNumberMobile value:[CNPhoneNumber phoneNumberWithStringValue:FieldNumbers]];

        NSLog(@"Print Homephone %@",homePhone);


        [arrNumbers addObject:homePhone];
        [contactToUpdate setPhoneNumbers:arrNumbers];

        [saveRequest updateContact:contactToUpdate];

        @try {

            NSLog(@"Success %d",[store executeSaveRequest:saveRequest error:nil]);


        }
        @catch (NSException *exception) {
            NSLog(@"description = %@",[exception description]);
        }
    }

Номер поля - это номер, который вы хотите заменить данным именем

Данное имя - это имя для человека с таким числом

ИОС, Objective-C, iphone, cncontact,
Похожие вопросы