내 응용 프로그램이 iOS 용 Addressbook 프레임 워크와 연결되어 있으며 연락처 정보를 얻고 있습니다.주소록 애플리케이션 만들기 - 이메일/전화 번호를 더 잘 처리하려면 어떻게해야합니까?
- FIRSTNAME
- LASTNAME
- 회사 이름
- 홈 이메일
- 업무용 전자 메일
- 집 전화
- 직장 전화
- 휴대폰
나는 내가 움켜 잡고있는 정보를 확장해야합니다. 앱에서 문제가되는 것은 앱의 사용자 데이터베이스에 연락처를 가져 오는 것입니다. 이런 경우, 둘 이상의 집 이메일 (또는 다른 이메일/전화 입력란)이 있으면 두 명의 사용자를 가져옵니다. 여기
내가 어쩌면 생각 나는 사전 또는 배열로가 있어야 내 사람 모델#import <Foundation/Foundation.h>
#import <AddressBook/AddressBook.h>
@interface Person : NSObject
@property (nonatomic, strong) NSString *firstName;
@property (nonatomic, strong) NSString *lastName;
@property (nonatomic, strong) NSString *fullName;
@property (nonatomic, strong) NSString *homeEmail;
@property (nonatomic, strong) NSString *workEmail;
@property (nonatomic, strong) NSString *companyName;
@property (nonatomic, strong) NSString *homePhone;
@property (nonatomic, strong) NSString *workPhone;
@property (nonatomic, strong) NSString *cellPhone;
@property (nonatomic, strong) NSString *sortByName; // Used only for sorting
@property (nonatomic) ABRecordID publicContactRecordId;
@property (nonatomic) NSString *parseObjectId;
- (NSComparisonResult)compareFirstName:(Person *)otherObject;
@end
입니까? 문제는 당장, 당연히 나는 하나 이상의 집 이메일과 다른 분야를 가질 수 없다. 내가 주소록 API에서 이메일과 전화 번호를 검색하는거야 방법
다음은 다음과 같습니다
이
내가![Parse User Database To Store Device Contacts To](https://i.stack.imgur.com/tdo41.png)
편집을 저장하고있어, 을 좀 더 통찰력을 제공 할 수 있습니다. 구조의 두 가지 방법이있다
//email
ABMultiValueRef emails = ABRecordCopyValue(contactPerson,
kABPersonEmailProperty);
NSUInteger j = 0;
for (j = 0; j < ABMultiValueGetCount(emails); j++){
NSString *email = (__bridge_transfer NSString *)ABMultiValueCopyValueAtIndex(emails, j);
if (j == 0){
if(email){
person.homeEmail = email;
}
}
else if (j==1){
if(email){
person.workEmail = email;
}
}
}
ABMultiValueRef numbers = ABRecordCopyValue(contactPerson, kABPersonPhoneProperty);
for (CFIndex i = 0; i < ABMultiValueGetCount(numbers); i++) {
NSString *phoneLabel = (__bridge NSString *)ABMultiValueCopyLabelAtIndex(numbers, i);
NSString *phoneNumber = (__bridge NSString *)ABMultiValueCopyValueAtIndex(numbers, i);
//NSLog(@"%@ | %@",phoneLabel,phoneNumber);
if([phoneLabel isEqualToString:@"Home Phone"])
{
person.homePhone = phoneNumber;
}else if([phoneLabel isEqualToString:@"Work Phone"])
{
person.workPhone = phoneNumber;
}else if([phoneLabel isEqualToString:@"Cell Phone"])
{
person.cellPhone = phoneNumber;
}
}
이것은 실제로 질문에 대한 답변이 아니지만 도움이 될 수 있습니다. 주소록을위한 Objective-C wrapper. https://github.com/erica/ABContactHelper – Kevin