Я получаю
yld: Symbol not found: _OBJC_CLASS_$_UIUserNotificationSettings
и здесь функция, вызывающая ошибку , когда приложение запущено на устройстве iOS7 и даже не вызывает функцию вообще в коде.
func reigsterForRemoteUserNotifications(notificationTypes: UIUserNotificationType, categories: NSSet) { let userNotificationSettings = UIUserNotificationSettings(forTypes: notificationTypes, categories: categories) (UIApplication.sharedApplication()).registerUserNotificationSettings(userNotificationSettings) UIApplication.sharedApplication().registerForRemoteNotifications() }
Я не хочу, чтобы этот метод был доступен вообще при запуске на устройстве iOS7. Я не хочу, чтобы внутри него была выбрана проверка, потому что это означает, что метод можно использовать для начала.
То, что я хочу, это параметр конфигурации сборки для проверки версии: Я не могу найти способ написать быстрый эквивалентный макрос препроцессора для проверки правильной версии iOS и пренебрегать новыми и незаявленными функциями библиотеки iOS 8.
#if giOS8OrGreater
// declare the functions that are iOS 8 specific
#else
// declare the functions that are iOS 7 specific
#endif
В документации apple предлагает функции и обобщения для замены сложных макросов, но в этом случае мне нужна предварительная компиляция конфигурации конфигурации, чтобы избежать обработки необъявленных функций. Любые предложения.