Jestem w tym bardzo nowy. Postępowałem zgodnie z instrukcją Apple'a krok po kroku dla projektu iPhone'a „HelloWorld”. Uruchomiłem go w symulatorze iPhone'a 5.0 i się zawiesił:
2012-11-02 14: 46: 06.782 HelloWorld [9880: c07] * Zakończenie aplikacji z powodu nieprzechwyconego wyjątku „NSInvalidUnarchiveOperationException”, powód: „Nie można utworzyć instancji klasy o nazwie NSLayoutConstraint” * Pierwszy rzut wywołań stosu: (0x14a2052 0xea2d0a 0x144aa787 0x144a9e 0x32f6b7 0x23036d 0xd7e2c 0xd83a9 0xd85cb 0x38a73 0x38ce2 0x38ea8 0x3fd9a 0x10be6 0x118a6 0x20743 0x211f8 0x14aa9 0x138cfa9 0x14761c5 0x13db022 0x3fd9a 0x10be6 0x118a6 0x20743 0x211f8 0x14aa9 0x138cfa9 0x14761c5 0x13db022 0x3fd9a 0x10be6 0x118a6 0x20743 0x211f8 0x14aa9 0x138cfa9 0x14761c5 0x13db022 0x3fd9a 0x10be6 0x118a6 0x20743 0x211f8 0x14aa9 0x138cfa9 0x14761c5 0x13db022 0x3fd9a
Czy ktoś może mi powiedzieć, co poszło nie tak? Używam Xcode 4.5.
źródło
Odpowiedzi:
Domyślnie podczas tworzenia nowego projektu systemu iOS w Xcode 4.5 scenorys lub XIB jest skonfigurowany do korzystania z funkcji Autolayout, która jest nową funkcją w systemie iOS 6.0.
NSLayoutConstraint
Klasa jest częścią systemu autoLayout, i to nie istnieje w starszych wersjach iOS.Jeśli chcesz wdrożyć aplikację na starszą wersję systemu iOS, musisz zmienić scenorys lub XIB, aby nie używać funkcji Autolayout. To pole wyboru w Inspektorze plików:
źródło
Twój plik Xib (plik konstruktora interfejsu) zawiera elementy AutoLayout, których nie obsługuje system iOS 5 .
W Xcode przejdź do plików .xib i dla każdego z nich wyłącz AutoLayout. Po lewej stronie powinno znajdować się pole wyboru „Użyj autoukładu”, odznacz je i spróbuj ponownie. (To jest pod pierwszą zakładką w inspektorze po lewej stronie, jeśli masz właściciela pliku).
źródło
Natknąłem się na ten błąd podczas pracy nad starszym projektem, który chciałem zaktualizować. Zaznaczyłem pole wyboru „Użyj automatycznego układu”, aby rozpocząć pracę z ograniczeniami, ale zapomniałem zaktualizować ustawienia celu wdrożenia do iOS 6.
źródło
Musisz go uruchomić w symulatorze iPhone'a 6.0. Twój błąd:
Sugeruje, że używasz autoukładu, który działa tylko na iOS 6.
źródło