记录私人iPhone方法

时间:2013-03-25 19:35:45

标签: iphone ios xcode logging

有没有办法通过Xcode记录私有方法等?例如:

用户按下按钮。控制台记录用户按下按钮时发生的所有事情的信息。我正在思考如何将SQL输出记录到调试器并查看正在进行的所有操作。

原因是我正在尝试使用某些私有框架,特别是控制发送电子邮件的框架。如果有一些方法可以看到在调用MFMailComposeViewController,用户按下发送以及何时解除调用之间调用的内容,将会很有帮助。如果有某种方法可以确切地知道正在使用的内容,那么通过私有标题进行排序会更容易一些。

....希望澄清我的问题。

编辑:

即使是这样简单的事情:

NSLog(@"%s", __PRETTY_FUNCTION__);

但这可以应用于私人框架。

2 个答案:

答案 0 :(得分:2)

我能想到的最接近的是:

NSLog( @"%@", [NSThread callStackSymbols] )
NSLog( @"%@", [NSThread callStackReturnAddresses] )

然而,您可能无法找到您想要的东西,因为您进入越狱区域。请记住,具体取决于您打算发布应用程序的位置。

可能可以找到有关私有API here的更多信息,但我不能保证它们有用或最新。此外,有关私有API的大量搜索会导致名为class-dump的程序。

<强>更新

出于好奇,MFMailComposerDelegate方法mailComposeController:didFinishWithResult:error:没有提供足够的信息吗?调用时,您会在发送邮件失败的事件(source)中获得结果(失败,取消,保存,发送)和错误对象(可能包含更多详细信息)。

答案 1 :(得分:0)

也许你可以在objc_msgSend函数上设置符号断点,这将捕获每个objective-c方法调用。