шаги, чтобы исправить проект, который не будет компилироваться - PullRequest
1 голос
/ 16 июня 2010

Вытягиваю голову, пытаясь скомпилировать простой оконный проект.

Я использую Xcode версии 3.2.2 и 3.2.3.Последний установлен в отдельной папке.

Первоначально я использовал последний для создания и компиляции моего проекта с новым 4.0 SDK.Скомпилировано нормально.Затем я сделал ошибку, удалив некоторые SDK, которые, как мне казалось, мне больше не нужны.

С тех пор, как я больше не могу компилировать.

Прямо сейчас я получаю дюжину или около того ошибок, похожих на следующие "_OBJC_CLASS _ $ _ CATransition ", ссылка на которую: objc-class-ref-to-CATransition в ViewTransitionsAppDelegate.o

Мой активный исполняемый файл - симулятор iphone 4, а базовый SDK - устройство iPhone 3.0.

Iпопытался переустановить установщик xcode3.2.3, без разницы.

Я совершенно запутался, так как мой проект работал и компилировался нормально, как на симуляторе, так и на внешнем устройстве.

Есть ли что-нибудь лучшее?практикует или рекомендует шаги по исправлению или перестройке проекта, когда он не будет компилироваться?

Любая помощь приветствуется!

Ответы [ 3 ]

6 голосов
/ 16 июня 2010

Убедитесь, что ваше приложение связано с QuartzCore.framework и что вы импортируете заголовки CoreAnimation везде, где вы используете CATransition:

#import <QuartzCore/CoreAnimation.h>

В противном случае, я бы рекомендовал полностью удалить все установки Xcode / Dev Tools из вашей системы (выполнить тщательную очистку) и переустановить последний SDK.

РЕДАКТИРОВАТЬ: Также забыл упомянуть, что последний iPhone SDK (iOS 4), по крайней мере для меня, не включает в себя предыдущие версии iPhone SDK. Он включает в себя только SDK 3.2 и 4.0, поэтому вам придется редактировать настройки цели / проекта вашего приложения, чтобы использовать iPhone SDK 4.0.

1 голос
/ 02 января 2011

Точно так же, как примечание - я немного боролся с этим и обнаружил, что это потому, что я не импортировал инфраструктуру QuartzCore в свой проект.

НТН.

0 голосов
/ 16 июня 2010

CATransition, вероятно, недоступен в более старой версии ОС (до 4.0).Обычно у вас есть 3 варианта:

1) Перепишите части, относящиеся к CATransition, чтобы не использовать его (или что-либо еще недоступное для версий iOS до версии 4.0)

2) Напишите код, который либово время компиляции или выполнения выбирает правильное поведение либо для использования CATransitions, либо для отключения функции, либо для ее реализации по-другому (см. руководство по разработке Apple для iPad - в нем показан очень полезный метод с использованием NSClassFromString)

3) Цельболее поздняя ОС

Возможно, вы захотите перейти с # 3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...