-2

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

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

原因是我正在尝试使用一些私有框架,特别是控制发送电子邮件的框架。如果有某种方法可以查看在调用 MFMailComposeViewController、用户按下发送和关闭它之间调用的内容,这将很有帮助。如果有某种方法可以准确地知道正在使用什么,那么对私有标头进行排序会更容易一些。

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

编辑:

甚至像这样简单的事情:

NSLog(@"%s", __PRETTY_FUNCTION__);

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

4

2 回答 2

2

我能想到的最接近的是以下之一:

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

但是,由于您进入越狱领域,因此您最终可能找不到您想要的东西。请记住这一点,具体取决于您打算在哪里发布应用程序。

可能会在此处找到有关私有 API 的更多信息,但我无法保证它们的实用性或最新性。大量关于私有 API 的搜索也导致了一个名为class-dump的程序。

更新

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

于 2013-03-26T03:07:56.947 回答
0

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

于 2013-03-26T03:05:01.607 回答