Wiem, że to trochę w stylu dupe, ale nie mam wystarczającej reputacji, aby skomentować oryginalny wpis, a gdy nie mam odpowiedzi, mam więcej przydatnych informacji (konkretny przykład). Moderatorzy, nie krępujcie się przenieść tego we właściwe miejsce.Nierozpoznany selektor UIDeviceRGBColor countByEnumeratingWithState: objects: count:
Podczas kompilowania mojego kodu przy użyciu najnowszej XCode 8 beta 6 (iOS 10 SDK), otrzymuję wyjątek „Przerwanie aplikację spowodowane nieprzechwyconego wyjątku 'NSInvalidArgumentException', powód:„- [UIDeviceRGBColor countByEnumeratingWithState: Przedmioty: Ilość:]: nierozpoznany selektor wysyłane do instancji 0x600000071340' ”
dzieje się podczas rozmowy:
auto viewController = [[[UIViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
mam izolowane problemu przez whittling dół mojego projektu do minimum, które skompilować i nadal wykazują problem. Można go pobrać tutaj:
Zauważ, że wyjąłem dużo kodu, prawie wszystkie zajęcia zostaną usunięte, co skutkuje dużo ostrzeżeń (nie błędy) dla nieistniejących klas przywoływanych z XIb. Ale to nie ma znaczenia, kod nadal kompiluje i działa dobrze z pakietem SDK iOS 9. Jednak po kompilacji z iOS 10 SDK zawiesza się zarówno w symulatorze, jak i na urządzeniach z systemem iOS 9.
Możesz obejść problem, zmieniając "#if 0" na "#if 1" w pliku " HackForUnrecognizedSelectorInIOS10.m ". Dodaje kategorię definiującą brakujące selektory dla UIColor. Ale oczywiście nie można tego dodać do kodu wysyłkowego, jest to tylko tymczasowy środek zapobiegawczy, który można dalej rozwijać.
Złożyłem zgłoszenie błędu (28153870). Ale jeśli ktoś ma więcej informacji na temat tego, jak uniknąć tego problemu bez brzydkich hacków, wszelkie informacje są mile widziane.
Dzięki
Michel Colman
To naprawdę rozwiązuje problem! Najwyraźniej cel wdrożenia musi wynosić co najmniej 6,0. Miałem to ustawione na "Deployment Target (5.1)". Ponadto, gdy ręcznie edytowałem xib w edytorze tekstu, aby ustawić (1536 to hex 510, tj. IOS 5.1), błąd powrócił. Kiedy ustawiłem go ponownie na 1536 (hex 600, tj. IOS 6.0), znów działało OK. –
O, przy okazji, w niektórych przypadkach otrzymałem również kolor [UIDeviceRGBColor]. Dlatego włączyłem oba selektory w paskudny plik hack w projekcie. W międzyczasie dowiedziałem się, że ten hack nie działa tak naprawdę: mimo że awarie znikają, tak samo dzieje się z pewną funkcjonalnością. Niektóre przyciski przestały działać, na przykład. Chociaż czasami pracowali. Wygląda na to, że dzieje się tam jakiś niedeterminizm. –
To nie działa dla mnie. Próbowałem ustawić wersję "później", ale nadal dostaję błąd. Zajrzałem również do pliku i nie widziałem wersji, którą pokazał @MichelColman. Właśnie to widzę, –
NinjaBeetle