Недокументированные звонки Mac - PullRequest
7 голосов
/ 22 марта 2010

Я работаю над парой продуктов для Mac, и для того, чтобы сделать то, что мне нужно, я использую некоторые вызовы недокументированных методов в Mac Classes.Например,

IKImageView

 doRotate:(id)

и

PDFDocument

(NSPrintOperation *)getPrintOperationForPrintInfo:(NSPrintInfo *)printInfo autoRotate:(BOOL)doRotate;

Насколько опасно использовать подобные методы?Есть ли опасность, кроме того, что Apple сделает их больше недоступными в будущем выпуске?

Ответы [ 2 ]

7 голосов
/ 22 марта 2010

Это не совсем неслыханно, но если вы собираетесь использовать их в выпуске программного обеспечения, вам нужно быть абсолютно уверенным, что вы соберетесь вместе, и тщательно протестировать каждую версию OS X, прежде чем она выйдет - потому что да, Apple может сделать любое количество вещей в будущей редакции (изменить сигнатуру метода, удалить метод, внести некоторую незначительную ошибку в метод, который работает во всех их случаях использования).

В любом случае, если вы обнаружите, что что-то, что вы не можете сделать с существующим API, вам следует подать запрос на улучшение в Apple, чтобы они знали, что это то, что им нужно добавить.

4 голосов
/ 22 марта 2010

Для извлечения интерфейса вы можете использовать утилиту class-dump , которая даст вам красивый автоматически сгенерированный заголовочный файл любого файла MachO.Например, чтобы найти метод getPrintOperationForPrintInfo, вы можете использовать команду:

$ class-dump /System/Library/Frameworks/Quartz.framework/Frameworks/PDFKit.framework/PDFKit | fgrep getPrintOperationForPrintInfo

, которая даст вам:

- (id)getPrintOperationForPrintInfo:(id)arg1 autoRotate:(BOOL)arg2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...