Я очень новичок в этом. Я шаг за шагом следовал руководству Apple для проекта iPhone «HelloWorld». Я запустил его в симуляторе iPhone 5.0, и он упал:
2012-11-02 14: 46: 06.782 HelloWorld [9880: c07] * Завершение работы приложения из-за необработанного исключения «NSInvalidUnarchiveOperationException», причина: «Не удалось создать экземпляр класса с именем NSLayoutConstraint» * Стек первого вызова вызова: (0x14a2052 0xea2d0a 0x14432f0 07 0 0 0 7 0 9 7 0 9 0 7 0 9 7 0 9 0 7 7 0 9 0 7 7 9 0 9 7 9 0 9 7 9 0 9 0 9 0 9 0 8 8 9 8 8 8 9 9 9 9 9, 9, 08, 08 0x32f6b7 0x23036d 0xd7e2c 0xd83a9 0xd85cb 0x38a73 0x38ce2 0x38ea8 0x3fd9a 0x10be6 0x118a6 0x20743 0x211f8 0x14aa9 0x138cfa9 0x14761c5 0x13db022 0x13d990a 0x13d8db4 0x13d8ccb 0x112a7 0x12a9b 0x1fed 0x1f15 0x1) Terminate называется бросать исключение (lldb)
Может кто-нибудь сказать, пожалуйста, что пошло не так? Я использую Xcode 4.5.
источник
Ответы:
По умолчанию, когда вы создаете новый проект iOS в Xcode 4.5, ваша раскадровка или XIB настроена на использование Autolayout, который является новой функцией в iOS 6.0.
NSLayoutConstraint
Класс является частью системы Autolayout, и она не существует в более ранних версиях IOS.Если вы хотите развернуть свое приложение на более старой версии iOS, вам нужно изменить раскадровку или XIB, чтобы не использовать Autolayout. Это флажок в Инспекторе файлов:
источник
Ваш Xib-файл (файл построителя интерфейса) содержит элементы AutoLayout, которые iOS 5 не поддерживает.
В XCode перейдите к своим файлам .xib, и для каждого из них отключите AutoLayout. Слева должен быть флажок «Использовать автоматическую разметку», снимите флажок и попробуйте снова. (Это на первой вкладке в левой части инспектора, когда у вас есть владелец файла).
источник
Я наткнулся на эту ошибку, когда работал над старым проектом, который хотел обновить. Я установил флажок «Использовать Autolayout», чтобы начать работу с ограничениями, но забыл обновить настройку цели развертывания до iOS 6.
источник
Вам нужно запустить его в симуляторе iPhone 6.0. Ваша ошибка:
Предполагает, что вы используете autolayout, который работает только на iOS 6.
источник