みなさん..基本的に連絡先データを処理するiPhone用アプリを開発しようとしていABAddressBook
ます...私の目標は、すべての連絡先データ(最初のステップでは、名前と電話)をファイルで電子メールで送信することです。
今、私は連絡先データに到達しようとしています、そして私はそれらを2つの異なる配列、名前と電話の配列に追加したいと思います。
最初は、「連絡先リスト」ボタンを押したときに画面にすべてのデータを表示しようとしています。データが画面に表示されます。次に、2番目のボタン[連絡先の送信]を押すと、ファイルが電子メールアカウントに送信されます。これが私のアプリの動作方法です。
画面にデータを表示するのに問題があります。何かを書きましたが、textViewの画面に何も表示されません。この問題を解決するのを手伝ってもらえますか?
連絡先を一覧表示するためのコードは次のとおりです(listConメソッド)。
-(IBAction)listCon:(id)sender
{
NSMutableArray *names = [[NSMutableArray alloc] init];
NSMutableArray *numbers1= [[NSMutableArray array] init];
NSMutableArray *numbers2= [[NSMutableArray array] init];
NSMutableArray *numbers3= [[NSMutableArray array] init];
ABAddressBookRef addressBook = ABAddressBookCreate();
if (addressBook != nil)
{
NSLog(@"Successfully accessed the address book.");
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex nPeople= ABAddressBookGetPersonCount(addressBook);
NSUInteger peopleCounter = 0;
for (peopleCounter = 0;peopleCounter < nPeople; peopleCounter++)
{
ABRecordRef thisPerson = CFArrayGetValueAtIndex(allPeople,peopleCounter);
NSString *contactFirstLast = [NSString stringWithFormat:@"%,%",ABRecordCopyValue(thisPerson, kABPersonFirstNameProperty), ABRecordCopyValue(thisPerson,kABPersonLastNameProperty)];
[names insertObject:contactFirstLast atIndex:peopleCounter];
ABMultiValueRef phoneNumbers = ABRecordCopyValue(thisPerson,kABPersonPhoneProperty);
NSString *firstPhone = (__bridge_transfer NSString*) ABMultiValueCopyValueAtIndex(phoneNumbers, 0);
NSString *secondPhone = (__bridge_transfer NSString*) ABMultiValueCopyValueAtIndex(phoneNumbers, 1);
NSString *thirdPhone = (__bridge_transfer NSString*) ABMultiValueCopyValueAtIndex(phoneNumbers, 2);
[numbers1 insertObject:firstPhone atIndex:peopleCounter];
[numbers2 insertObject:secondPhone atIndex:peopleCounter];
[numbers3 insertObject:thirdPhone atIndex:peopleCounter];
}
}
myView.text=[names componentsJoinedByString:@"\n\n"];
myView.text=[numbers1 componentsJoinedByString:@"\n\n"];
myView.text=[numbers2 componentsJoinedByString:@"\n\n"];
myView.text=[numbers3 componentsJoinedByString:@"\n\n"];
}