새로운 글
새로운 덧글

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;

번호 제목 글쓴이 날짜 조회 수
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 174
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 4125
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 797
공지 [프로그래밍 강의] 2018.10 ~ 2018.12 관리자 2015.01.22 6701
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 관리자 2015.06.30 11800
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2018년 09월 업데이트 됨) 험프리 2014.01.16 148833
877 윈도우와 맥 개발 시작을 위한 파이어몽키 코스북: 무료 다운로드 제공(385페이지) 관리자 2013.04.05 151999
876 델파이 튜토리얼 자습서 이용 안내 관리자 2014.09.01 70888
875 이 달의 기술자료 - 2014년 11월 험프리 2014.10.13 53876
874 CD-ROM 열고 닫기 박병일 2011.12.22 44544
873 이 달의 기술자료 - 2014년 12월 file 험프리 2014.11.26 32219
872 이 달의 기술자료 - 2014년 6월 file 험프리 2014.06.05 29841
871 RAD Studio XE6 Update1 발표 [1] Humphery 2014.06.20 29210
870 최신버전에서 ComPort(시리얼 통신) 컴포넌트 설치안내 [10] file 험프리 2013.12.04 20622
869 [Android] 폰번호 가져오기 [1] 타락천사 2014.09.05 19022
868 델파이 XE2에서 dbExpress를 이용해 오라클 연결하기 file 박병일 2012.02.15 17254
867 SendMessage 함수를 이용한 메세지 전송 관리자 2012.01.05 16430
866 이 달의 기술자료 - 2014년 4월 file 험프리 2014.04.03 16278
865 이 달의 기술자료 - 2015년 03월 험프리 2015.02.25 15607
864 델파이 XE2 로 아이폰 하드웨어 컨트롤 하기 박병일 2012.01.19 15163
863 다중 클라이언트를 위한 DataSnap 서버 만들기 관리자 2011.12.22 15015
862 이 달의 기술자료 - 2015년 02월 file 험프리 2015.01.29 14788
861 델파이XE2의 VCL Styles 활용하기 박병일 2012.01.19 14379
» 파이어몽키 기반의 아이폰앱 개발에서 주소록 가져오기 박병일 2012.01.25 13774
859 델파이 XE2로 만든 아이폰 앱 - TicTacToe file 박병일 2012.01.17 13708


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