나는 아이폰 연락처에 25000 개의 연락처를 삽입 할 필요가있다. 시뮬레이터에서 잘 작동하고 몇 분 안에 완성 될 수있다. 그러나 iPhone 4에서 가져올 때 3 시간 이상 소요되며 부분 연락처 만 저장되고 앱이 닫힙니다. 여기 ABAddressbook에 여러 연락처를 삽입하는 방법은 무엇입니까?
의 코드 내 조각 여러 레코드가 주소록에 삽입하는 간단한 방법도움말 나 ... 사전에
for (int i = 0; i < [contactNameArray count]; i++) {
//Create new person and save to this group
ABRecordRef record = ABPersonCreate();
BOOL isSuccess ;
NSString *firstname = [NSString stringWithFormat:@"%@",[contactNameArray objectAtIndex:i]];
isSuccess = ABRecordSetValue(record, kABPersonFirstNameProperty,(__bridge CFStringRef)firstname, &error);
isSuccess = ABRecordSetValue(record, kABPersonLastNameProperty,CFSTR("Custom Contacts"), &error);
ABMutableMultiValueRef copyOfPhones = ABMultiValueCreateMutable(kABPersonPhoneProperty);
NSString *phonenumber = [NSString stringWithFormat:@"%@",[contactPhoneArray objectAtIndex:i]];
CFTypeRef phone= (__bridge CFStringRef)phonenumber;
ABMultiValueAddValueAndLabel(copyOfPhones, phone,kABPersonPhoneMobileLabel,NULL);
isSuccess = ABRecordSetValue(record, kABPersonPhoneProperty, copyOfPhones, &error);
CFRelease(copyOfPhones);
ABMutableMultiValueRef multiEmail = ABMultiValueCreateMutable(kABMultiStringPropertyType);
NSString *emailid = [NSString stringWithFormat:@"%@",[contactEmailArray objectAtIndex:i]];
CFTypeRef email= (__bridge CFStringRef)emailid;
ABMultiValueAddValueAndLabel(multiEmail, email, kABWorkLabel, NULL);
ABRecordSetValue(record, kABPersonEmailProperty, multiEmail, &error);
CFRelease(multiEmail);
isSuccess = ABAddressBookAddRecord(ab, record, &error);
isSuccess = ABAddressBookSave(ab, &error);
ABGroupAddMember(group, record, &error);
NSLog(@"is success %d", isSuccess);
ABAddressBookSave(ab, &error);
}
감사합니다 ....
시뮬레이터에는 Mac의 모든 기능과 메모리가 있지만 아이폰에는 없다는 것을 잊지 마십시오. – tomasmcguinness
예 알아요.하지만 iOS 기기에 빠른 방법으로 삽입 할 수있는 방법이 필요합니다 .... – Arvind