スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Adress Bookの使い方

iPhoneのAdress Bookにアクセスする方法でつまづいたのでメモ。

1.AddressBook.frameworkを追加する。
 追加方法・・・xcodeの左側にある”グループとファイル”(classesとかResourcesがあるとこ)の
 frameworksのフォルダを右クリックして、追加 - 既存のフレームワークを選択する。
 色々frameworkが出てくるのでAddressBook.frameworkを選択して追加する。
 ※これをやらないと下記のようなエラーが出るかも。

"_ABRecordCopyValue", referenced from:
-[GetContactDataViewController myAction1:] in GetContactDataViewController.o
"_ABAddressBookGetPersonCount", referenced from:
-[GetContactDataViewController myAction1:] in GetContactDataViewController.o
"_kABPersonEmailProperty", referenced from:
_kABPersonEmailProperty$non_lazy_ptr in GetContactDataViewController.o
(maybe you meant: _kABPersonEmailProperty$non_lazy_ptr)
"_ABAddressBookCopyArrayOfAllPeople", referenced from:
-[GetContactDataViewController myAction1:] in GetContactDataViewController.o
"_ABMultiValueCopyValueAtIndex", referenced from:
-[GetContactDataViewController myAction1:] in GetContactDataViewController.o
"_ABAddressBookCreate", referenced from:
-[GetContactDataViewController myAction1:] in GetContactDataViewController.o
"_ABMultiValueGetCount", referenced from:
-[GetContactDataViewController myAction1:] in GetContactDataViewController.o


2.下記コードでメールが取得できる。
※ ○○○.h

#import

を追加

※ ○○○.m
アクション内に下記を追加。

//ref of Addressbook
ABAddressBookRef book = ABAddressBookCreate();

//Count of Addressbook
CFIndex cnt = ABAddressBookGetPersonCount(book);
NSLog(@"addressbook count is %d ",cnt);

//AllRecords of Addressbook
CFArrayRef records = ABAddressBookCopyArrayOfAllPeople(book);
for(int i=0;i< CFArrayGetCount(records) ;i++){
//record at index=i
ABRecordRef person = CFArrayGetValueAtIndex(records,i);
//eMail info
ABMultiValueRef emails = ABRecordCopyValue(person,kABPersonEmailProperty);
//how many email
CFIndex emlCount = ABMultiValueGetCount(emails);
for(int e=0;e //print email address
NSLog(@"addressbook %d email: %@",i,ABMultiValueCopyValueAtIndex(emails,e));
}
}


Eメール以外を取得する場合はリファレンスの「Personal Information Properties」あたりを見て、それっぽいのを

ABMultiValueRef emails = ABRecordCopyValue(person,kABPersonEmailProperty);

のkABPersonEmailPropertyの部分を変えれば良さそう。

スポンサーサイト

トラックバック

コメント

コメントを残す

Secret


プロフィール

U2K

Author:U2K
いろいろプログラムに関しての覚え書きをちょくちょくと書いていきます。

オススメ










オススメ

忍者AdMax

u2k on Twitter

最近の記事


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。