0

現在、ユーザーの連絡先/アドレス帳にアクセスしています。xcodeを介してプログラムをコンパイルし、iPhoneシミュレーターを起動すると、それらはデータです.... iPhoneシミュレーターの連絡先アプリにアクセスし、自分で追加して、アプリが実際に連絡先データベースにアクセスできるかどうかを確認したためです。

シミュレーターではなく iPhone からアプリをデプロイすると、アプリに連絡先も情報も表示されません。iOS6とAppleがいくつかのプライバシー設定を変更することで、それらが複雑になることを理解しています.

ビューコントローラークラスの1つにある関数を次に示します。関数を呼び出します

[self getPersonOutOfAddressBook]; 機能を実行します。

- (void)getPersonOutOfAddressBook
{
    CFErrorRef error = NULL;

    ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &error);

    if (addressBook != nil)
    {
        NSLog(@"Succesful.");

        NSArray *allContacts = (__bridge NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
        NSLog(@"Number of users: %d ", [allContacts count]);
        NSUInteger i = 0;
        for (i = 0; i < [allContacts count]; i++)
        {
            Person *person = [[Person alloc] init];

            ABRecordRef contactPerson = (__bridge ABRecordRef)allContacts[i];

            NSString *firstName = (__bridge NSString *)ABRecordCopyValue(contactPerson, kABPersonFirstNameProperty);
            NSString *lastName =  (__bridge NSString *)ABRecordCopyValue(contactPerson, kABPersonLastNameProperty);
            NSString *fullName = [NSString stringWithFormat:@"%@ %@", firstName, lastName];

            person.firstName = firstName;
            person.lastName = lastName;
            person.fullName = fullName;

            //email
            ABMultiValueRef emails = ABRecordCopyValue(contactPerson, kABPersonEmailProperty);

            NSUInteger j = 0;
            for (j = 0; j < ABMultiValueGetCount(emails); j++)
            {
                NSString *email = (__bridge_transfer NSString *)ABMultiValueCopyValueAtIndex(emails, j);
                if (j == 0)
                {
                    person.homeEmail = email;
                NSLog(@"person.homeEmail = %@ ", person.homeEmail);

                }

                else if (j==1)
                    person.workEmail = email;
            }

            [self.tableData addObject:person];
        }
    }

    CFRelease(addressBook);
}

私の出力は

2013-03-04 22:29:00.094 ourApplication[5562:907] Succesful.
2013-03-04 22:29:00.099 ourApplication[5562:907] Number of users: 0 

私のiPhoneで

そして私のMacで

2013-03-04 22:31:41.799 ourApplication[12591:12b03] Succesful.
2013-03-04 22:31:41.801 ourApplication[12591:12b03] Number of users: 6 

等々...

変!!!ヘルプ :(

4

0 に答える 0