【问题标题】:iphone os 5 - unrecognized selector sent to instanceiphone os 5 - 无法识别的选择器发送到实例
【发布时间】:2014-01-15 02:11:24
【问题描述】:

我有一个错误。

UIImage *img = [[UIImage imageNamed:@"bg_message.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(47, 32, 47, 32) resizingMode:UIImageResizingModeStretch];


UIImage *img = [[UIImage imageNamed:@"bg_message.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(47, 32, 47, 32) resizingMode:UIImageResizingModeStretch];
UIImageView *imgView = [[UIImageView alloc] initWithFrame:frame];
[imgView setImage:img];
[imgView setTag:99999999];
[self.view addSubview:imgView];

只要满足 os 5,os 6 和 7 就通过了。

//This is the error message

* 由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'-[UIImage resizableImageWithCapInsets:resizingMode:]:无法识别的选择器发送到实例 0xd86c2c0'

我不明白。 请任何人帮助我! 非常感谢!

【问题讨论】:

    标签: ios iphone uiimage


    【解决方案1】:

    -[UIImage resizableImageWithCapInsets:resizingMode:]仅适用于或之后的iOS 6.(参考:Link) P>

    如果您构建的应用程序在新的Xcode这个API,它会告诉你没有警告或错误。但是,当你在运行iOS 5的设备的应用程序,它会抛出无法识别的选择异常。这是很难赶上这样的错误。因此,要测试的最佳方式是的IOS 5模拟器/设备上运行。 P>

    这是一个很好的做法太查找文档。苹果写的文档很好。您还可以通过阅读它学到很多东西。 P>

    【讨论】:

      【解决方案2】:

      只有在 ios6 中才添加了带有 resizingMode 的变体。如果你也想在 ios5 下运行,你必须检查该方法是否可用。

      【讨论】:

      • 当然 - 只需放入一个 if 语句来决定 UIImage 是否支持该方法 - 所以类似于: if ([UIImage instancesRespondToSelector:@selector(resizableImageWithCapInsets:resizingMode:)]) { 调整大小 } else {做点别的}
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-28
      • 2012-07-24
      相关资源
      最近更新 更多