NSCFConstantString 大小尝试设置图像
Posted
技术标签:
【中文标题】NSCFConstantString 大小尝试设置图像【英文标题】:NSCFConstantString size trying to set an Image 【发布时间】:2013-08-11 13:17:46 【问题描述】:我正在制作一个 UITableView,每个单元格都有一个 UIIMage。
为了为每个单元格设置不同的图像,我在项目中加载了所有图像并创建了一个包含所有图像_flagsArray = [NSArray arrayWithObjects: @"flag_Italia.png", @"flag_USA", nil];
的数组。
在cellForRowAtIndexPath
我写了
UIImageView * flagImageView = (UIImageView *) [self.view viewWithTag:1]; //declaration of UIImageView in cell
UIImage * flagImage = (UIImage *)[_flagsArray objectAtIndex:indexPath.row]; //read UImage
[flagImageView setImage : flagImage]; //should assign UImage to UIImageView
运行它时出现日志*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString size]: unrecognized selector sent to instance 0xcbdc'
崩溃,第三行出现信号 SIGABRT 但我不明白为什么,出了什么问题?
谢谢!
【问题讨论】:
【参考方案1】:您的数组包含字符串而不是图像。此外,您似乎正试图从self.view
获取图像视图,而您应该从cell
获取图像视图。这样做:
UIImageView *flagImageView = (UIImageView *)[cell viewWithTag:1];
NSString *imageName = _flagsArray[indexPath.row];
UIImage *flagImage = [UIImage imageNamed:imageName];
flagImageView.image = flagImage;
或者更简洁:
UIImageView *flagImageView = (UIImageView *)[cell viewWithTag:1];
flagImageView.image = [UIImage imageNamed:_flagsArray[indexPath.row]];
【讨论】:
以上是关于NSCFConstantString 大小尝试设置图像的主要内容,如果未能解决你的问题,请参考以下文章
[__NSCFConstantString objectAtIndex:]:无法识别的选择器发送到实例 0x3141c
如何测试 NSMutableArray 中是不是存在 _NSCFConstantString?
Swift json 解析错误:无法将 NSCFConstantString 类型的值转换为 NSArray
UITableView reloadData 崩溃并出现错误 [__NSCFConstantString objectForKey:]
NSInvalidArgumentException',原因:'-[__NSCFConstantString objectForKey:]:无法识别的选择器发送到实例 0x10256a1b0'