連絡先の情報を参照する

先日の簡単に電話をかけるアプリですが・・・

すでに存在し、私の考えていた事よりも遙かに優れていて、便利そう

なので・・

作るのはやめました

途中まで作りましたが、電話番号を登録する際に電話内の連絡先から選択できれば

簡単だなと思い、調べたので書いておきます

まずは、以下の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』とかでググればでてきまーす!

  1. こんにちは、mipoiAppです!

    情報の展開とってもありがたいです〜!
    ありがとうございます!

  1. トラックバックはまだありません。

*