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

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

谢谢

4

1 回答 1

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 的内容我不能更具体。

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

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

于 2015-06-30T12:01:06.897 回答