Не удается скомпилировать код, содержащий метод iOS 5, при установке более низкой цели развертывания - PullRequest
2 голосов
/ 18 ноября 2011

Не верно для всех новых методов iOS 5, но я обнаружил, что вызов метода setBackgroundImage:forBarMetrics: UINavigationBar вызовет предупреждение «метод экземпляра не найден», если цель развертывания ниже 5.0. Это даже при том, что я связываюсь с SDK 5.0.

Что более важно, перечисление UIBarMetrics, используемое в качестве параметра, сообщается как «необъявленный идентификатор», и это вызовет ошибку компилятора.

Есть идеи, почему это так? Я понял, что код не будет работать, если цель развертывания ниже 5.0, но я проверяю, отвечает ли UINavigationBar на этот селектор во время выполнения, поэтому все должно быть в порядке. Я не понимаю ошибку компилятора.

EDIT: Это происходит только при компиляции устройства и когда устройство действительно подключено (устройство, которое я тестировал, работает под управлением iOS 5.0.1).

1 Ответ

2 голосов
/ 21 ноября 2011

Ну, я разгадал тайну.Мне удается решить эту проблему, удалив SDK 4.3 (он был скопирован из Xcode 3, поскольку он не поставляется по умолчанию с последним пакетом Xcode + SDK, и я использовал его для другого унаследованного проекта).

Я до сих пор не могу объяснить, почему оба SDK вызвали ошибку, поскольку я явно компилировал последний SDK.

...