
// Should show nopE in iOS 5,YEP in iOS 6. Shows nopE alwaysNSLog(@"%@",[[UIbarbuttonItem appearance] respondsToSelector:@selector(setBackgroundImage:forState:style:barMetrics:)] ? @"YEP" : @"nopE"); // Should show YEP in both iOS 5 and iOS 6. Shows nopE alwaysNSLog(@"%@",[[UIbarbuttonItem appearance] respondsToSelector:@selector(setBackgroundImage:forState:barMetrics:)] ? @"YEP" : @"nopE");
实际上使用这些方法在各自的iOS版本上都可以正常工作,但我似乎无法检测到哪个版本可用。那么我该怎么做呢?
解决方法 不要检查外观代理。你永远不会依赖这个,因为它是一个代理。相反,直接检查具有新方法的项目,在本例中为UIbarbuttonItem:BOol hasNewMethod = [UIbarbuttonItem instancesRespondToSelector:@selector(setBackgroundImage:forState:style:barMetrics:)];if( hasNewMethod ) NSLog(@"Running iOS 6 with new method");else NSLog(@"Current OS doesn't support method...");总结
以上是内存溢出为你收集整理的objective-c – respondToSelector出现代理失败全部内容,希望文章能够帮你解决objective-c – respondToSelector出现代理失败所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)