У вас должно быть слабое связывание с новыми фреймворками. Наряду с этим вы должны проверять наличие новых API, используя такие методы как NSClassFromString
, respondsToSelector
, instancesRespondToSelector
и т. Д.
Например. Слабая связь с MessageUI.framework (старый пример, но все еще актуальный)
Сначала проверьте, существует ли класс MFMailComposerController
:
Class mailComposerClass = NSClassFromString(@"MFMailComposerController");
if (mailComposerClass != nil)
{
// class exists, you can use it
}
else
{
// class doesn't exist, work around for older OS
}
Если вам нужно использовать новые константы, типы или функции, вы можете сделать что-то вроде:
if (&UIApplicationWillEnterBackgroundNotification != nil)
{
// go ahead and use it
}
Если вам нужно знать, можете ли вы использовать новые методы в уже существующем классе, вы можете сделать:
if ([existingInstance respondsToSelector:@selector(someSelector)])
{
// method exists
}
И так далее. Надеюсь, это поможет.