Я знаю, что это своего рода обман, но у меня пока нет достаточной репутации, чтобы прокомментировать исходное сообщение, и, хотя у меня нет ответа, у меня есть более полезная информация (конкретный пример). Модераторы, не стесняйтесь переместить это в нужное место.Unrecognized selector UIDeviceRGBColor countByEnumeratingWithState: objects: count:
При компиляции моего кода с использованием новейшего XCode 8 беты-6 (IOS 10 SDK), я получаю исключение «Нагрузочное приложение из-за неперехваченное исключение 'NSInvalidArgumentException', причина:«- [UIDeviceRGBColor countByEnumeratingWithState: объекты: Кол-во:]: непризнанный селектор послал к экземпляру 0x600000071340' »
Это происходит во время разговора:
auto viewController = [[[UIViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
Я изолировал проблему сводила вниз мой проект до минимума, который будет компилировать и до сих пор проявляет проблему. Вы можете скачать его здесь:
Обратите внимание, что я вынул много кода, почти все классы исчезли, что приводит к большому количеству предупреждений (а не ошибки) для несуществующих классов ссылочных от XIb. Но это не имеет значения, код все еще компилируется и отлично работает с iOS 9 SDK. Однако после компиляции с iOS 10 sdk он сбой как в симуляторе, так и на устройствах под управлением iOS 9.
Вы можете решить проблему, изменив «#if 0» на «#if 1» в файле " HackForUnrecognizedSelectorInIOS10.m». Это добавляет категорию, определяющую отсутствующие селекторы для UIColor. Но, очевидно, вы не можете добавить это в код доставки, это просто временная мера остановки, чтобы продолжать развиваться.
Я подал сообщение об ошибке (28153870). Но если у кого-то есть больше информации о том, как избежать этой проблемы без уродливых хаков, любая информация приветствуется.
Благодаря
Мишель Колман
Это действительно решение! По-видимому, цель развертывания должна быть не менее 6,0. У меня было установлено значение «Цель развертывания (5.1)». Кроме того, когда я вручную редактировал xib в текстовом редакторе, чтобы установить (1536 - это hex 510, то есть iOS 5.1), ошибка вернулась. Когда я верну его обратно к 1536 (hex 600, то есть iOS 6.0), он снова работал нормально. –
O, кстати, у меня также была [UIDeviceRGBColor length] в некоторых случаях. Вот почему я включил оба селектора в уродливый файл взлома в проекте. Тем временем я узнал, что этот хак на самом деле не работает правильно: даже несмотря на то, что сбои исчезают, так же как и некоторые функции. Например, некоторые кнопки перестали работать. Хотя иногда они работали. Там, кажется, есть некоторый недетерминизм. –
Это не сработало для меня. Я попытался установить версию «Позже», но до сих пор получаю ошибку. Я также просмотрел файл, и я не вижу версию, которую показал @MichelColman. Я просто вижу это, <идентификатор развертывания = "iOS" /> – NinjaBeetle