Есть ли способ обеспечить реализацию метода (который носит точно такое же имя метода, определенного платформой), только когда метод еще не определен в системе? Например, метод [NSSomeClass someMethod:]
существует только в Mac OS X 10.6, и если мое приложение работает в 10.5, я предоставлю определение этого метода в категории. Но когда приложение запускается в 10.6, я хочу, чтобы выполнялся метод, предоставленный операционной системой.
Справочная информация: Я создаю приложение, рассчитанное как на 10,5, так и на 10,6. Проблема в том, что я недавно понял, что метод +[NSSortDescriptor sortDescriptorWithKey:ascending:]
существует только в 10.6, и мой код уже засорен этим вызовом метода. Я мог бы предоставить для него реализацию по умолчанию (поскольку на этот раз это не так уж сложно реализовать самостоятельно), но я хочу, чтобы «родная» была вызвана всякий раз, когда мое приложение работает на 10.6. Кроме того, если в будущем я столкнусь с подобными проблемами (с более сложными для реализации методами), я не смогу обойтись без замены одной строки.
Этот вопрос в некоторой степени похож на Переопределить метод через категорию ObjC и вызвать реализацию по умолчанию? но разница в том, что я хочу предоставлять реализации только тогда, когда система еще не имеет их.
Спасибо.