저는 Apple의 주소록과 다음 대리인 인 ABNewPersonViewControllerDelegate, ABPeoplePickerNavigationControllerDelegate 및 ABPersonViewControllerDelegate를 사용하여 간단한 연락처 응용 프로그램을 만들었습니다. 연락처 만들기, 편집 및 삭제 기능이 있습니다. 이제 작성한 모든 연락처와 전화 번호를 텍스트 파일로 가져 오는 옵션을 추가하고 싶습니다. 나는이 여기에 지금 문제가ABAddressBook에서 연락처를 텍스트 파일로 가져 오는 데 문제가 있습니다.
-(void)fetchContacts
{
addressBooks =ABAddressBookCreate();
CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBooks);
for (CFIndex i = 0; i < CFArrayGetCount(people); i++)
{
person12 = CFArrayGetValueAtIndex(people, i);
NSString *tweet=[[NSString stringWithFormat:@"%@",(__bridge_transfer NSString *)ABRecordCopyValue(person12, kABPersonFirstNameProperty)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
if(CFBridgingRelease(ABRecordCopyValue(person12,kABPersonLastNameProperty))!=NULL)
{
tweet=[tweet stringByAppendingString:@" "];
tweet=[tweet stringByAppendingString:[[NSString stringWithFormat:@"%@",(__bridge_transfer NSString *)ABRecordCopyValue(person12, kABPersonLastNameProperty)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]];
}
if(CFBridgingRelease(ABRecordCopyValue(person12,kABPersonFirstNameProperty))!=NULL)
{
tweet=[tweet stringByAppendingString:@" ---> "];
tweet=[tweet stringByAppendingString:[[NSString stringWithFormat:@"%@",(__bridge_transfer NSString *)ABRecordCopyValue(person12, kABPersonPhoneProperty)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]];
}
NSLog(@"%@",tweet);
NSString* documentPlistPath = [[NSBundle mainBundle] pathForResource:@"Contacts" ofType:@"txt"];
[tweet writeToFile:documentPlistPath atomically:NO encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",documentPlistPath);
}
CFBridgingRelease(people);
}
: 이것은 내 코드입니다
1) NSLog에를, 트윗 모든 값을 포함하지만 같은 형식을 다음 : 1 개 값 이름 성 ---> ABMultiValueRef 0x6c26760 (들) 0 : 은 $! $ (0x6c26b60가) - PHONENUMBER은 (0x6c26b80)
내가이 형식에 필요한 이름 성 ---> PHONENUMBER
2) Contact.txt 파일이 아닙니다 ~을 얻다 채워진다. NSLog 경로에 맞습니다. 제발 조언을 여기에 뭐가 잘못.