는 여기 하나의 접근법. 나는 도서관 내부에 그것을 사용하지 않은하지만 난 거기 작동하지 않을 이유를 생각할 수 없다 : 이것은이 아이폰 OS 7 SDK로 구축된다고 보여지는 코드 섹션 내부에 구현
SEL registerUserNotificationSettings = NSSelectorFromString(@"registerUserNotificationSettings:");
// iOS 8 requires explicit permission from the user for local notifications
if ([application respondsToSelector:registerUserNotificationSettings]) {
//Extra hack for the bit settings since we're building with a SDK that doesn't have the symbols
#define REQUIRED_SETTINGS 7
Class settingsClass = NSClassFromString(@"UIUserNotificationSettings");
if (settingsClass) {
id settings = objc_msgSend(settingsClass, @selector(settingsForTypes:categories:), REQUIRED_SETTINGS, nil);
objc_msgSend(application, registerUserNotificationSettings, settings);
}
}
. respondsToSelector:
은 본질적으로 iOS 8 이상 런타임 검사입니다.