为啥我收到 CIFilter 的“无法识别的选择器发送到类”错误?

Posted

技术标签:

【中文标题】为啥我收到 CIFilter 的“无法识别的选择器发送到类”错误?【英文标题】: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 及更高版本中可用”。没想到要检查功能。感谢您的帮助。 【参考方案1】:

查看the official documentation of + filterWithName:withInputParameters:

+ filterWithName:withInputParameters:

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

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

一些可能的解决方案:

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

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

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

【讨论】:

以上是关于为啥我收到 CIFilter 的“无法识别的选择器发送到类”错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我得到“[__NSArrayI allKeys]:无法识别的选择器发送到实例”/为啥 NSDictionary 正在转换?

为啥我得到“[__NSArrayI allKeys]:无法识别的选择器发送到实例”/为啥 NSDictionary 正在转换?

OCMock:为啥在尝试调用 UIWebView 模拟时会出现无法识别的选择器异常?

在进行 json 解析时,我收到异常为 ::-->> 原因::无法识别的选择器发送到实例

CKQueryNotification.recordID:无法识别的选择器发送到实例

使用 MyAppDelegate 时无法识别的选择器