В моем коде есть класс (назовем его myRefLib), который наследуется от UIReferenceLibraryViewController (часть UIKit Framework), который является классом, доступным только в iOS 5 и выше. Я хотел бы иметь цель развертывания iOS 3.2.Унаследовано от слабосвязанных классов или классов iOS, не относящихся к цели развертывания iOS-версия
Если я просто создавал экземпляр UIReferenceLibraryViewController, я понимаю, что могу использовать базовый SDK из 5, а затем проверить, существует ли класс с [классом UIReferenceLibraryViewController] перед запуском любого кода, который его включает. Но как мне это сделать, если я наследую от класса?
Проблема в том, что я должен # включить класс наследования myRefLib для частей моего кода, который будет использовать его, но не существует способа условно сделать это во время выполнения. В качестве альтернативы также нет способа выполнения, условно наследуемого от UIReferenceLibraryViewController в myRefLib. Я также хотел бы сделать экземпляр myRefLib свойством другого класса - опять же, как я могу сделать это время выполнения условно?
Любая помощь очень ценится ...
D
Thanks Ken. Единственная причина, по которой я привел условное наследование, была альтернативой, если не было решения проблемы #include. Вы также отправили меня сюда, что касается некоторых деталей: http://www.marco.org/2010/11/22/supporting-older-versions-of-ios-while-using-new-apis ... показывает это нормально для подкласса, включать и указывать на отсутствующий класс, при условии соблюдения определенных условий и при условии, что вы не создаете экземпляр. – delany
О, также метод класса [UIReferenceLibraryViewController dictionaryHasDefinitionForTerm: str] возвращает nil без сбоев, если класс UIReferenceLibraryViewController не существует. Итак, в случае этого конкретного класса, если вы уже проверяли, что слово существует до создания экземпляра (и при условии соблюдения вышеописанных условий), похоже, что нет необходимости изменять какой-либо код для более старых версий.Хотя я полагаю, что поведение словаряHasDefinitionForTerm не гарантируется в будущих версиях iOS, поэтому лучше всего добавить проверку [UIReferenceLibraryViewController class]. – delany