将图像添加到imageView iOS时出现NSInvalidArgumentException异常

时间:2014-04-22 09:46:55

标签: ios iphone objective-c ipad

.H文件

@property (strong, nonatomic) LAClaimReport *claimReport;

.M文件

@interface LACreateReportViewController ()
{
    NSArray *_thumbnails;
    LAPhotoThumb *_lastSelectedPhoto;
}

_thumbnails = _claimReport.photos.allObjects;
    if (_thumbnails.count >0)
    {
        _photosCaption.textColor = [UIColor colorWithRed:0/255.0 green:46/255.0 blue:91/255.0 alpha:1];

        UIImageView *image = [[UIImageView alloc] initWithFrame:CGRectMake(30, 1838, 300, 600)];
         NSLog(@"image:%@" , _thumbnails[0]);
        [image setImage:(UIImage *) _thumbnails[0]]; // exception here.

}

NSInvalidArgumentException',原因:' - [LAPhoto尺寸]:无法识别的选择器发送到实例0xa76b720'

照片是LAClaimReport类文件中的一列。关于尺寸我在这里缺少什么?请指导。

2 个答案:

答案 0 :(得分:1)

_thumbnails不包含UIImage个实例,它包含其他类型的对象。但是,不包含足够的信息来说明它包含的对象类型。

sizeUIImage上的一种方法,图像视图使用该方法来确定如何显示图像,_thumbnails实际上没有任何对象实现该方法方法

您的NSLog(@"image:%@" , _thumbnails[0]);应列出您尝试用作图片的班级类型。

答案 1 :(得分:0)

确保在_thumbnails数组中有UIImage类对象,我认为你在该数组中有LAPhoto类型的对象

id arrContent=_thumbnails[0];
    if ([arrContent isKindOfClass:[LAPhoto Class]])
    {
        //read LAPhoto class and find a way to get the UIImage from LAPhoto Object
    }
    else if ([arrContent isKindOfClass:[UIImage class]])
    {
        [image setImage:(UIImage *) _thumbnails[0]];
    }