【问题标题】:Why am I getting an "unrecognized selector sent to class" error for CIFilter?为什么我收到 CIFilter 的“无法识别的选择器发送到类”错误?
【发布时间】:2015-09-23 02:17:23
【问题描述】:

此代码适用于 iPad 2 模拟器,但不适用于我的物理 iPad 2(在 iOS 7.0.6 上运行):

var fade = CIFilter(name: "CIExposureAdjust", withInputParameters:["inputEV" : -2.0 ])

完整的错误信息说:

[CIFilter filterWithName:withInputParameters:]: 无法识别的选择器 发送到类 0x392d8d9c 2015-07-05 23:12:37.106 *** 终止应用程序 由于未捕获的异常“NSInvalidArgumentException”,原因: '+[CIFilter filterWithName:withInputParameters:]: 无法识别 选择器发送到类 0x392d8d9c'

【问题讨论】:

  • 阅读the doc: +filterWithName:withInputParameters: -> Available in iOS 8.0 and later
  • 该死的他们抓住了我。这是我检查的第一件事,但我刚刚看到该类是“在 iOS 5.0 及更高版本中可用”。没想到要检查功能。感谢您的帮助。

标签: ios swift ipad-2 cifilter


【解决方案1】:

查看the official documentation of + filterWithName:withInputParameters:

+ filterWithName:withInputParameters:

可用性
适用于 iOS 8.0 及更高版本。

由于您的 iPad 在 iOS 7 上运行,此方法不可用,因此您的应用会崩溃。

一些可能的解决方案:

  1. 使用- respondsToSelector:检查方法是否存在。

  2. 检查当前基础版本号NSFoundationVersionNumber是否高于NSFoundationVersionNumber_iOS_7_1

  3. 将 iOS 8 设为您的应用的最低要求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多