Почему я получаю сообщение об ошибке "Неопознанный селектор отправлен в класс" для CIFilter?

Этот код работает на симуляторе 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:withInputParametersized:]: селектор отправлен в класс 0x392d8d9c'

1 ответ

Решение

Проверьте официальную документацию + filterWithName:withInputParameters:

+ filterWithName:withInputParameters:

Доступность
Доступный в iOS 8.0 и позже.

Поскольку ваш iPad работает на iOS 7, этот метод недоступен, и поэтому ваше приложение вылетает.

Несколько возможных решений:

  1. использование - respondsToSelector: проверить, существует ли метод.

  2. Проверьте, если текущий номер версии фонда, NSFoundationVersionNumber выше чем NSFoundationVersionNumber_iOS_7_1,

  3. Сделайте iOS 8 минимальным требованием для вашего приложения.

Другие вопросы по тегам