iphone os 5 - 无法识别的选择器发送到实例
Posted
技术标签:
【中文标题】iphone os 5 - 无法识别的选择器发送到实例【英文标题】:iphone os 5 - unrecognized selector sent to instance 【发布时间】: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'
我不明白。 请任何人帮助我! 非常感谢!
【问题讨论】:
【参考方案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 做点别的以上是关于iphone os 5 - 无法识别的选择器发送到实例的主要内容,如果未能解决你的问题,请参考以下文章
-[UITableViewCell setLayoutMargins:]:无法识别的选择器发送到 iphone 4 中的实例错误
iPhone 应用程序崩溃 [__NSCFString objectForKey:] 无法识别的选择器发送到实例
将 NSMutableArray 加载到 iPhone 的表视图中时无法识别的选择器