【问题标题】:Warning: More % conversions than data arguments - Objective C警告:比数据参数更多的转换百分比 - 目标 C
【发布时间】:2015-09-17 05:06:07
【问题描述】:
-(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 的新手,上面的代码 sn-p 是我收到警告的程序的一部分:'More % conversions than data argument'

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

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

谢谢

【问题讨论】:

  • 什么是PROFILE_PHOTO_FILEPATH
  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。跨度>

标签: ios objective-c xcode7-beta2


【解决方案1】:

此错误意味着您的格式化字符串 (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

【讨论】:

  • '#define PROFILE_PHOTO_FILEPATH @"%@/MNE_Images/%@'是PROFILE_PHOTO_FILEPATH的内容
猜你喜欢
  • 2014-06-03
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 2020-06-07
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多