UIGraphicsBeginImageContextWithOptions не компилируется с 4.3 SDK (отлично с 4.2 SDK) - PullRequest
0 голосов
/ 09 марта 2011

С iOS 4.0 я компилирую и использую следующий код:

if(UIGraphicsBeginImageContextWithOptions != NULL)
{
    UIGraphicsBeginImageContextWithOptions(drawCopyFS.frame.size, NO, 0.0);
} 
else 
{
    UIGraphicsBeginImageContext(drawCopyFS.frame.size);
}

Как только я перешел на 4.3 SDK, этот фрагмент кода перестал компилироваться со следующими двумя ошибками:

  • 'UIGraphicsBeginImageContextWithOptions' undeclared (error on line #1)
  • Implicit declaration of function 'UIGraphicsBeginImageContextWithOptions' (error on line #7)

У кого-нибудь есть идеи, почему это происходит?Что-то изменилось в 4.3, или как я могу это исправить?

XCode не окрашивает UIGraphicsBeginImageContextWithOptions так же, как UIGraphicsBeginImageContext, и в то же время не предоставляет никакой быстрой помощиэто.

Ответы [ 2 ]

0 голосов
/ 16 марта 2011

У меня была такая же проблема с этим символом, а также с кучей других символов, селекторов и макросов. Как и в случае с другим респондентом, очистка всего и удаление предварительно скомпилированных заголовков не исправили это. Также не менял SDK. Что это исправило, так это переключение со сборки симулятора на сборку устройства, а затем переключение обратно.

0 голосов
/ 10 марта 2011

Сначала убедитесь, что базовый SDK настроен на использование самой последней информации о проекте. Если это не сработает, тогда читайте дальше.

У меня была похожая проблема с UIBackgroundTaskIdentifier, который был представлен в 4.0 и скомпилирован нормально перед обновлением SDK. Оказалось, что Xcode пытается использовать заголовки из iOS 3.2 SDK. Вывод на консоль процесса сборки показал, что старый путь поиска заголовков был передан в компилятор, хотя базовый SDK был определенно задан как самый последний в Project Info.

Перезагрузка проекта не помогла. Перезапуск Xcode не дал эффекта. Есть сообщения, что ручное редактирование файла проекта было необходимо с прошлыми обновлениями. Однако когда я открыл файл проекта в текстовом редакторе, я обнаружил, что переменные SDKROOT были правильно установлены на последний путь SDK.

В моем случае сработало закрытие Xcode, восстановление файла «MyProject.xcodeproj / project.pbxproj» из системы контроля версий до точки непосредственно перед обновлением SDK, затем перезапуск Xcode и открытие проекта.

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