警告:转换百分比高于数据参数 - Objective C

Warning: More % conversions than data arguments - Objective C

-(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 的新手,上面的代码片段是我收到警告的程序的一部分:'More % conversions than data argument' 行

[m_ivwMainConsumerImage setImage:[UIImage imageWithContentsOfFile:[NSString stringWithFormat:PROFILE_PHOTO_FILEPATH,[[[DataModel sharedConsumerData] images] lastObject]]]];

你能告诉我如何克服这个错误吗?

谢谢

此错误意味着您的格式化字符串 (PROFILE_PHOTO_FILEPATH) 的格式说明符多于您提供给它的参数(您只提供一个,即 DataModel 图像的最后一个对象)。

例如:

如果 PROFILE_PHOTO_FILEPATH 是“%@ %d”,它需要一些对象 %@ 和一个整数 %d。所以你需要这样调用 stringWithFormat:

[NSString stringWithFormat:PROFILE_PHOTO_FILEPATH, [[[DataModel sharedConsumerData] images] lastObject], 42];

显然这只是一个示例,没有看到PROFILE_PHOTO_FILEPATH的内容我不能更具体。

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

https://developer.apple.com/library/prerelease/mac/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html