警告:比数据参数更多%转换 - 目标C.

时间:2015-06-30 11:57:36

标签: ios objective-c xcode7-beta2

-(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]]]];

请告诉我如何克服这个错误?

由于

1 个答案:

答案 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的内容,我就不能更具体了。

有关字符串格式说明符如何工作的更多详细信息,请参阅此文档:

docs