2

携帯電話番号を引数として渡すことで、アドレス帳から人物の連絡先画像を取得するにはどうすればよいでしょうか。アドレス帳を開きたくない。

Image Well が 1 つと、画像を取得するための数字とボタンが 1 つあるテキスト フィールドが 1 つあります。

テキストフィールドに10桁の数字を入れたいだけです。ボタンを押すと、この番号を持つアドレス帳から人のサムネイル画像を取得したいと思います。UIView から渡された携帯電話番号から人のサムネイル画像を取得したいだけですが、アドレス帳を開いて、リストから連絡先を UIView ページに選択したくありません。

誰でもコードを手伝ってください。私はiPhone開発の初心者です。

4

1 に答える 1

2

電話番号から画像を取得するためのサンプルを確認してください

NSString phoneNumber = @"yourPhoneNumber";
UIImage *myContactImage;
ABAddressBookRef addressBook = ABAddressBookCreate();

    // Get all contacts in the addressbook
    NSArray *allPeople = (__bridge NSArray*)ABAddressBookCopyArrayOfAllPeople(addressBook);

    for (id person in allPeople) {
        // Get all phone numbers of a contact
        ABMultiValueRef phoneNumbers = ABRecordCopyValue((__bridge ABRecordRef)(person), kABPersonPhoneProperty);

        // If the contact has multiple phone numbers, iterate on each of them
        for (int i = 0; i < ABMultiValueGetCount(phoneNumbers); i++) {
            NSString *phone = (__bridge_transfer NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, i);

            // Remove all formatting symbols that might be in both phone number being compared
            NSCharacterSet *toExclude = [NSCharacterSet characterSetWithCharactersInString:@"/.()- "];
            phone = [[phone componentsSeparatedByCharactersInSet:toExclude] componentsJoinedByString: @""];
            phoneNumber = [[phoneNumber componentsSeparatedByCharactersInSet:toExclude] componentsJoinedByString: @""];

            if ([phone isEqualToString:phoneNumber]) {
                NSData *contactImageData = (NSData*)ABPersonCopyImageData(person);
                myContactImage = [[UIImage alloc] initWithData:contactImageData];
                break;
                break;
            }
        }
    }
于 2012-12-28T13:39:11.630 に答える