如何记录在 Objective-C 事件循环的单次迭代中发送的每条消息?
我想进一步了解 Objective-C 运行时,并认为这将是一个好的开始。
如何记录在 Objective-C 事件循环的单次迭代中发送的每条消息?
我想进一步了解 Objective-C 运行时,并认为这将是一个好的开始。
这些函数将根据进程的 PID 将所有消息记录到 /tmp 中的文件中。在模拟器上很好,但在 iDevice 上不行。
// Start logging all messages
instrumentObjcMessageSends(YES);
// Stop logging all messages
instrumentObjcMessageSends(NO);
CFRunLoopObserver
opaque 类型应该完全符合您的要求。这是
在运行的运行循环中的不同点接收回调的一般方法。
使用其创建函数activity
的参数来指定您希望何时为观察者提供服务。对于您的情况,这可能是or 。kCFRunLoopEntry
kCFRunLoopExit
您可以CFRunLoopRef
从当前NSRunLoop
的[[NSRunLoop currentRunLoop] getCFRunLoop]
, 或使用CFRunLoopGetCurrent()
.