連絡先の情報を参照する
先日の簡単に電話をかけるアプリですが・・・
すでに存在し、私の考えていた事よりも遙かに優れていて、便利そう
なので・・
作るのはやめました 笑
途中まで作りましたが、電話番号を登録する際に電話内の連絡先から選択できれば
簡単だなと思い、調べたので書いておきます
まずは、以下の2つのフレームワークを追加します
AddressBook.framework
AddressBookUI.framework
<h>
#import <UIKit/UIKit.h>
#import <AddressBook/AddressBook.h>
#import <AddressBookUI/AddressBookUI.h>
@interface easyCallViewController : UIViewController {
UIButton *addressButton;
}
@property(nonatomic ,retain) IBOutlet UIButton *addressButton;
-(IBAction) pushButonAddress:(id)sender;
@end
<m>
#pragma mark - Address Book
-(IBAction) pushButonAddress:(id)sender{
ABPeoplePickerNavigationController *picker =
[[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
[self presentModalViewController:picker animated:YES];
[picker release];
}
- (void)peoplePickerNavigationControllerDidCancel: (ABPeoplePickerNavigationController *)peoplePicker {
[self dismissModalViewControllerAnimated:YES];
}
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)
peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person{
// FirstName
NSString* name = (NSString *)ABRecordCopyValue(person,</pre>
kABPersonFirstNameProperty);
[name release];
// LastName
name = (NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty);
[name release];
// 電話番号
NSMutableArray *phoneNumberStr = [NSMutableArray array];
CFStringRef phoneNumber;
ABMultiValueRef tels = ABRecordCopyValue(person, kABPersonPhoneProperty);
for (CFIndex i = 0; i < ABMultiValueGetCount(tels); i++) {
phoneNumber = ABMultiValueCopyValueAtIndex(tels, i);
[phoneNumberStr addObject:[NSString stringWithFormat:@"%@",phoneNumber]];
CFRelease(phoneNumber);
}
CFRelease(tels);
// E-mail
// ABMultiValueRef emails = ABRecordCopyValue(person, kABPersonEmailProperty)
[self dismissModalViewControllerAnimated:YES];
return NO;
}
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)
peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:
(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{
return NO;
}
まずpushButonAddressのコードをどん!を追加すると、次々とワーニングが出ます
あれ追加しろ、これ追加しろ・・
とワーニング様の仰せの通りに追加していくと上記のコードになります
これが最低限必要なセットなんですかね?
流れとしては
①pushButonAddressで連絡先画面が開きます
②連絡先を選択するとpeoplePickerNavigationControllerに入ってきます
③ここで必要な情報を参照します。今回は名字、名前、電話番号を参照しました。
name = (NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty);
この赤字のところを変えて参照していくんですね
電話番号っていくつ登録できるんだ?
っていうくらい登録可能なので、一応全部参照するようにしました
その他に住所、メール、URL、メモなど参照可能
『連絡先 ABRecordCopyValue』とかでググればでてきまーす!










こんにちは、mipoiAppです!
情報の展開とってもありがたいです〜!
ありがとうございます!