【发布时间】:2014-12-29 13:13:43
【问题描述】:
我正在从联系人中获取图像并将其存储为:
NSData *contactImageData = (__bridge NSData *)ABPersonCopyImageDataWithFormat(person, kABPersonImageFormatThumbnail);
UIImage *img = [UIImage imageWithData:contactImageData];
NSLog(@"%@",img); //returns like '<UIImage: 0x7fc740460260>'
[contactInfoDict setObject:img forKey:@"image"]; //contactInfoDict is a NSDictionary
现在我再次将图像设置为:
UIImage *image = [UIImage imageWithCGImage:(__bridge CGImageRef)([contactInfoDict objectForKey:@"image"])];
cell.profileImg.image = image;
但是什么也没发生。根本没有图像。我做错了什么?
更新
我也试过了:
NSData *contactImageData = (__bridge NSData *)ABPersonCopyImageDataWithFormat(person, kABPersonImageFormatThumbnail);
[contactInfoDict setObject:contactImageData forKey:@"image"];
像这样获取它:
NSString *str = [contactInfoDict objectForKey:@"image"];
NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];
UIImage *image = [UIImage imageWithData:data];
cell.profileImg.image = image;
但不工作。将 NSData 设置为图像后图像返回 nil。
【问题讨论】:
-
尝试调试。
img是一个有效的对象吗?是image、cell和cell.profileImg? -
尝试使用类型转换UIImage *image = (UIImage *)[contactInfoDict objectForKey:@"image"];您也可以通过 img = [UIImage imageWithData:(NSData *)ABPersonCopyImageData(person)]; 获取直接图像
-
是的,所有都是有效的对象!
-
你可以试试我的答案并告诉我吗?
-
嗨,我已经更新了我的答案,你可以检查一下..
标签: ios objective-c uiimage