-(void)updateResult {
@try {
if (questionFlag == INSERT_IMAGE_DETAILS) {
[self getImageDetail];
[m_ivwMainConsumerImage setImage:[UIImage imageWithContentsOfFile:[NSString stringWithFormat:PROFILE_PHOTO_FILEPATH,[[[DataModel sharedConsumerData] images] lastObject]]]];
}
}
@catch ....
我是Objective C的新手,上面的代码段是我收到警告的程序的一部分:'比数据参数更多%转换'为行
[m_ivwMainConsumerImage setImage:[UIImage imageWithContentsOfFile:[NSString stringWithFormat:PROFILE_PHOTO_FILEPATH,[[[DataModel sharedConsumerData] images] lastObject]]]];
请告诉我如何克服这个错误?
由于
答案 0 :(得分:2)
此错误意味着您的格式化字符串(PROFILE_PHOTO_FILEPATH
)具有比您提供给它的参数更多的格式说明符(您只提供一个,即DataModel图像的lastObject)。
例如:
如果PROFILE_PHOTO_FILEPATH
是"%@%d"它期望一些对象%@和一个整数%d。因此,您需要以这种方式致电stringWithFormat:
:
[NSString stringWithFormat:PROFILE_PHOTO_FILEPATH,[[[DataModel sharedConsumerData] images] lastObject],42];
显然这只是一个例子,如果没有看到PROFILE_PHOTO_FILEPATH的内容,我就不能更具体了。
有关字符串格式说明符如何工作的更多详细信息,请参阅此文档: