У меня есть приложение для 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
.
Это просто вопрос флага компилятора, который мне нужно установить? Или я поступаю неправильно?