Как вы можете проверить, установлена ли константа во время выполнения? Например, в iOS 4 доступна UIApplicationDidEnterBackgroundNotification, но при запуске на iOS 3 она будет проходить через ошибку, если вы попытаетесь ее использовать.iPhone, проверьте наличие константы
6
A
ответ
12
Возможно, вы должны посмотреть на this other question, который, на мой взгляд, также отвечает на ваши вопросы. if (&UIApplicationWillEnterForegroundNotification != NULL)
должен быть динамически связующим и указывать, существует ли константа или нет.
Смежные вопросы
- 1. Как проверить наличие внешней константы NSString?
- 2. Проверьте наличие дубликата значения
- 3. Проверьте наличие HashMap ключа
- 4. Проверьте наличие утечек памяти
- 5. Проверьте наличие ямбического пентаметра?
- 6. Проверьте наличие сессии (Nginx)
- 7. Проверьте наличие слабой сети
- 8. Проверьте наличие внешней камеры
- 9. Проверьте наличие недопустимого ввода
- 10. Проверьте наличие непрочитанных сообщений
- 11. Проверьте наличие столбца/ключа?
- 12. Проверьте наличие пустого элемента
- 13. Проверьте наличие плагина Disqus
- 14. Проверьте наличие недостающего числа
- 15. Проверьте наличие файла
- 16. проверьте наличие пустого радиоприемника
- 17. Проверьте наличие экземпляра объекта
- 18. Проверьте наличие соединения ADO.NET/OLEDB
- 19. Sightly: проверьте наличие пустых списков
- 20. XML - Проверьте наличие определенного узла
- 21. Проверьте наличие строки в CLOB
- 22. Regex Javascript: проверьте наличие palindromes
- 23. Box2D проверьте наличие ПОТЕНЦИАЛЬНОГО столкновения
- 24. Проверьте наличие элемента в lisp
- 25. Android - проверьте наличие другого приложения
- 26. Rackspace CloudFiles: проверьте наличие файла
- 27. Проверьте наличие коллекции XML-схем?
- 28. Проверьте наличие слова в NSString
- 29. Проверьте наличие ошибок синтаксиса PHP?
- 30. Fortran: Проверьте наличие списка имен
Если вы используете LLVM, вам нужно сделать некоторые трюки, чтобы заставить его не оплотировать ваш оператор if. Это работает для меня. BOOL backgroundOK = & UIApplicationDidEnterBackgroundNotification! = NULL; if (backgroundOK) { [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector (имя приложенияDidEnterBackground :): UIApplicationDidEnterBackgroundNotification bject: nil]; } –
Неужели ошибка оптимизатора уже установлена в компиляторе LLVM/Clang? В какой версии? –
Это не ошибка в LLVM, а функция. LLVM будет оптимизировать заявления без побочных эффектов, и это хорошо. Но это делает материал немного более жестким для этого типа кода. – Romain