有没有办法通过Xcode记录私有方法等?例如:
用户按下按钮。控制台记录用户按下按钮时发生的所有事情的信息。我正在思考如何将SQL输出记录到调试器并查看正在进行的所有操作。
原因是我正在尝试使用某些私有框架,特别是控制发送电子邮件的框架。如果有一些方法可以看到在调用MFMailComposeViewController,用户按下发送以及何时解除调用之间调用的内容,将会很有帮助。如果有某种方法可以确切地知道正在使用的内容,那么通过私有标题进行排序会更容易一些。
....希望澄清我的问题。
编辑:
即使是这样简单的事情:
NSLog(@"%s", __PRETTY_FUNCTION__);
但这可以应用于私人框架。
答案 0 :(得分:2)
我能想到的最接近的是:
NSLog( @"%@", [NSThread callStackSymbols] )
NSLog( @"%@", [NSThread callStackReturnAddresses] )
然而,您可能无法找到您想要的东西,因为您进入越狱区域。请记住,具体取决于您打算发布应用程序的位置。
您可能可以找到有关私有API here的更多信息,但我不能保证它们有用或最新。此外,有关私有API的大量搜索会导致名为class-dump的程序。
<强>更新强>:
出于好奇,MFMailComposerDelegate
方法mailComposeController:didFinishWithResult:error:
没有提供足够的信息吗?调用时,您会在发送邮件失败的事件(source)中获得结果(失败,取消,保存,发送)和错误对象(可能包含更多详细信息)。
答案 1 :(得分:0)
也许你可以在objc_msgSend
函数上设置符号断点,这将捕获每个objective-c方法调用。