2012-02-28 33 views
5

Tôi muốn nhận tên liên lạc, ảnh từ Sổ địa chỉ trong ứng dụng iphone của tôi. Tôi có thể nhận được địa chỉ liên lạc và lưu trữ trong array.but bây giờ biết làm thế nào cũng có được hình ảnh liên lạc. Tôi đang sử dụng mã như sau.Tải ảnh từ Sổ địa chỉ trong ứng dụng iphone

ABAddressBookRef ab=ABAddressBookCreate(); 
NSArray *arrTemp=(NSArray *)ABAddressBookCopyArrayOfAllPeople(ab); 

arrContact=[[NSMutableArray alloc] init]; 
for (int i=0;i<[arrTemp count];i++) 
{ 
    NSMutableDictionary *dicContact=[[NSMutableDictionary alloc] init]; 
    NSString *str=(NSString *) ABRecordCopyValue([arrTemp objectAtIndex:i], kABPersonFirstNameProperty); 
    @try 
    { 
     [dicContact setObject:str forKey:@"name"]; 
    } 
    @catch (NSException * e) { 
     [dicContact release]; 
     continue; 
    } 
    [arrContact addObject:dicContact]; 
    NSLog(@"mohit inside the loop"); 
    [dicContact release]; 
} 

Tôi muốn nhận cả ảnh và tên liên hệ trong mảng đó (arrContacts), sau đó hiển thị chúng trong bảng. Xin vui lòng cho tôi hướng dẫn. Cảm ơn

Trả lời

4

Trong iOS 4+ bạn có thể lấy hình ảnh với:

ABPersonCopyImageDataWithFormat(person, kABPersonImageFormatOriginalSize); 

hoặc

ABPersonCopyImageData(person); 
+0

loại dữ liệu của một người. đó là loại NSMutableArray? –

+0

ABRecordRef, giống như [arrTemp objectAtIndex: i] mà bạn đang sử dụng cho ABRecordCopyValue. Để tìm ra điều này, hãy nhập ABPersonCopyImageData vào Xcode, sau đó nhấp vào nó, ma thuật, nhấp lại vào cửa sổ bật lên xuất hiện để đi đến tài liệu đầy đủ. – valexa

6

Trong chế độ ARC

 
NSData *imgData = (__bridge_transfer NSData *) ABPersonCopyImageDataWithFormat(record, kABPersonImageFormatThumbnail); 

nơi kỷ lục là đối tượng của lớp

ABRecordRef

Hy vọng thi s giúp

Các vấn đề liên quan