У меня есть приложение для iPhone, которое в основном нацелено на 3.0, но которое использует преимущества новых API, когда они доступны. Код выглядит примерно так:
if (UIApplicationDidEnterBackgroundNotification != NULL) {
[nc
addObserver: self
selector: @selector(irrelevantCallbackName:)
name: UIApplicationDidEnterBackgroundNotification
object: nil];
}
Теперь, согласно тому, что Apple когда-либо говорила, если соответствующие API-интерфейсы слабо связаны, это будет работать нормально, потому что динамический компоновщик будет оценивать UIApplicationDidEnterBackgroundNotification
до NULL
. Кроме того, что это не так. Приложение компилируется, но как только он попадает в if (UIApplicationDidEnterBackgroundNotification != NULL)
, он сбрасывается с помощью EXC_BAD_ACCESS
.
Это просто вопрос флага компилятора, который мне нужно установить? Или я об этом ошибаюсь?