새로운 글
새로운 덧글

http://blogs.embarcadero.com/ao/2012/01/24/39203


iOS Address Book fun

Getting data out of the iOS address book is a lot harder than I thought… Must make component… ;)

Here’s a Q&D routine I managed to eek out today. It simply prints all contacts and all their numbers to the log console.

Enjoy!

uses
  iPhoneAll, AddressBook, CFArray, CFBase;

procedure DumpAddressBook;
var
  addressBook : ABAddressBookRef;
  allPeople : CFArrayRef;
  nPeople : CFIndex;
  ref : ABRecordRef;
  i, j : Integer;
  firstName : CFStringRef;
  lastName : CFStringRef;
  phoneNumber : CFStringRef;
  l, v : CFStringRef;
  S : NSString;
begin
  addressBook := ABAddressBookCreate;
  allPeople := ABAddressBookCopyArrayOfAllPeople(addressBook);
  nPeople := ABAddressBookGetPersonCount(addressBook);

  for i:=0 to nPeople-1 do begin
    ref := CFArrayGetValueAtIndex(allPeople,i);

    firstName := ABRecordCopyValue(ref,kABPersonFirstNameProperty);
    lastName := ABRecordCopyValue(ref,kABPersonLastNameProperty);
    if firstName <> nil then
      if lastName <> nil then
        S := NSString.stringWithFormat(NSSTR(PChar('%@, %@')),lastName,firstName)
      else
        S := NSString.stringWithFormat(NSSTR(PChar('%@')),firstName)
    else
      if lastName <> nil then
        S := NSString.stringWithFormat(NSSTR(PChar('%@')),lastName);
    NSLog(S);

    phoneNumber := ABRecordCopyValue(ref, kABPersonPhoneProperty);
    for j:=0 to ABMultiValueGetCount(phoneNumber)-1 do begin
      l := ABMultiValueCopyLabelAtIndex(phoneNumber,j);
      v := ABMultiValueCopyValueAtIndex(phoneNumber,j);
      S := NSString.stringWithFormat(NSSTR(PChar('%@: %@')),l,v);
      NSLog(S);
      CFRelease(l);
      CFRelease(v);
    end;

    if phoneNumber <> nil then
      CFRelease(phoneNumber);
    if firstName <> nil then
      CFRelease(firstName);
    if lastName <> nil then
      CFRelease(lastName);
  end;
end;

번호 제목 글쓴이 날짜 조회 수
공지 [10.3 리오][업데이트 3] What's NEW! 신기능 자세히 보기 관리자 2019.11.22 1740
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 3943
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 6773
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 3185
공지 [프로그래밍 강의] 2019.8~2019.12 관리자 2015.01.22 10214
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 관리자 2015.06.30 16351
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2019년 11월 업데이트 됨) 험프리 2014.01.16 153696
139 [10.3 리오][업데이트1] 재설계한 RAD서버 콘솔 UI : API 분석 용이 & Ext JS로의 마이그레이션 지원 관리자 2019.02.22 243
138 [발표자료] What's NEW! RAD Studio 10.2 도쿄 험프리 2017.04.13 243
137 [10.3 리오][업데이트 2] 멋지게 업그레이드된 VCL 품질 관리자 2019.09.10 242
136 [발표자료] 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio [2] 관리자 2017.06.26 242
135 [무료 기술백서] 스마트한 크로스-플랫폼 앱 개발 관리자 2019.05.13 241
134 [도서/PDF/소스코드] 시작하는 사람들을 위한 델파이 프로그래밍-모듈 17. 1차원 정적 배열 file 관리자 2019.03.29 240
133 엔터프라이즈 커넥터로 'VCL 애플리케이션에서 엑셀 데이터 가져오기&편집하기' file 김원경 2019.09.27 239
132 [제품 설치 방법] 엠바카데로 본사 서버 이슈로 인해 설치가 어려운 경우 이 방법을 활용하세요. 관리자 2019.07.31 239
131 [도서/PDF/소스코드] 시작하는 사람들을 위한 델파이 프로그래밍-모듈 19. StringGrid 콘트롤 file 관리자 2019.03.29 239
130 [도서/PDF/소스코드] 시작하는 사람들을 위한 델파이 프로그래밍-모듈 7. 중접된 If...Then...Else 문. 작업 해결 실습하기 file 관리자 2019.03.29 239
129 현대화 작업, 바로 지금이 골든타임입니다! 관리자 2019.09.11 238
128 [RAD서버] JSON 처리 단순화 컴포넌트 활용 - TEMSDataSetResource 험프리 2019.09.27 236
127 [발표자료] 20171109 RAD스튜디오 100% 활용하기: 최신 기술 적용과 확장 관리자 2017.11.10 235
126 멀티-플랫폼 앱 멋지게! 쉽게! 빠르게! 완성하기 - #3 바로 커스터마이징해서 빠르게 완성하기 file 험프리 2019.07.16 233
125 [발표자료] 2015년 12월 C++ Skill Sprints 온라인 세미나 시리즈 관리자 2015.12.30 232
124 FCM 전송 구헌혀기 - 앱 서버 프로토콜 사용 메시지 전송 험프리 2019.11.08 231
123 [도서/PDF/소스코드] 시작하는 사람들을 위한 델파이 프로그래밍-모듈 8. 프로시저들 file 관리자 2019.03.29 231
122 [베를린 U2] 퀵에디트(Quick Edit) 메뉴 사용하기 (1분 동영상) 험프리 2016.11.15 231
121 [10.3 리오][업데이트 2] IDE 향상된 기능들 [4] 관리자 2019.08.12 229
120 [델파이 샘플 코드] 안드로이드, iOS, OSX, 윈도우, 리눅스, HTML5 관리자 2019.11.13 228


광고 모듈이 설치되어 있지 않아 실행을 중단합니다..