ios - [UIImage imageWithRenderingMode :]: unrecognized selector sent to instance

标签 ios objective-c

<分区>

我正在尝试显示原始标签栏图像。以下代码在 iOS7 中运行良好,但在 iOS 6.0 中会出现上述崩溃。以下是 AppDelegates didFinishLaunchingWithOptions

中的代码
UITabBar *tb = tabBarControllerProperty.tabBar;
        NSArray *itemsObject = tb.items;
        for(UITabBarItem *tabItem in itemsObject)
        {
            UIImage *imaged = tabItem.image;
            tabItem.selectedImage = imaged;
            tabItem.image = [imaged imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];// crash for ios6, not in ios 7
        }

最佳答案

来自文档:

-[UIImage imageWithRenderingMode:]

Availability: available in iOS 7.0 and later.

您必须检查该方法在运行时是否可用:

if ([imaged respondsToSelector:@selector(imageWithRenderingMode:)]) {
    tabItem.image = [imaged imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];// crash for ios6, not in ios 7
} else {
    // iOS 6 fallback: insert code to convert imaged if needed
    tabItem.image = imaged;
}

关于ios - [UIImage imageWithRenderingMode :]: unrecognized selector sent to instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20903985/

相关文章:

ios - 如何在 iOS 共享扩展中正式处理未经身份验证的用户?

ios - 不应使用 ejabberd 中的 mod_apns.erl 接收被阻止的用户的通知

ios - 深色模式不会立即更新

php - 使用 PHP 发件人和 Swift 在后台未收到 IOS GCM 推送通知

objective-c - UIAlertView 和内存泄漏

objective-c - Mac OS X 上的上下文菜单首选项(无需代码注入(inject))

objective-c - Apple 如何在打开时更新 Airport 菜单? (如何在 NSMenu 已经打开时更改它)

ios - Zebra 打印机打印被裁切的图像

ios - 如何在导航栏的默认后退按钮上设置图像

tableview 单元格内的 ios 文本字段