Недокументированные вызовы Mac

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

IKImageView

 doRotate:(id)

и

PDFDocument's

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

Как опасный это должно использовать методы как они? Существует ли опасность кроме того, что Apple будет делать их больше не доступными в некоторой будущей версии?

7
задан Bhargav Rao 30 April 2019 в 04:23
поделиться

2 ответа

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

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

7
ответ дан 6 December 2019 в 23:04
поделиться

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

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

Что даст вам:

- (id)getPrintOperationForPrintInfo:(id)arg1 autoRotate:(BOOL)arg2;
4
ответ дан 6 December 2019 в 23:04
поделиться