我正在研究几种mac产品,为了做我需要做的事情,我在Mac Classes上使用了一些未记录方法的调用。喜欢
IKImageView的
doRotate:(id)
和
PDFDocument的
(NSPrintOperation *)getPrintOperationForPrintInfo:(NSPrintInfo *)printInfo autoRotate:(BOOL)doRotate;
使用这些方法有多危险?除了苹果公司将在未来的某次革命中不再提供它们之外还有其他危险吗?
答案 0 :(得分:7)
这并不是闻所未闻的,但是如果你要在发布软件中使用它们,你需要确保你有你的狗屎,并在它出来之前广泛测试每个版本的OS X - 因为是的, Apple可以在将来的版本中执行任何操作(更改方法的签名,删除方法,在所有他们的用例中使用的方法中引入一些微妙的错误。)
无论如何,如果您发现现有API无法做到,您应该向Apple提交增强请求,以便他们知道这是他们需要添加的内容。
答案 1 :(得分:4)
要提取界面,您可以使用class-dump实用程序,它将为您提供任何MachO文件的自动生成的头文件。例如,要查找getPrintOperationForPrintInfo
方法,您可以使用以下命令:
$ class-dump /System/Library/Frameworks/Quartz.framework/Frameworks/PDFKit.framework/PDFKit | fgrep getPrintOperationForPrintInfo
哪个会给你:
- (id)getPrintOperationForPrintInfo:(id)arg1 autoRotate:(BOOL)arg2;