了解Objective-C事件循环



如何记录在Objective-C事件循环的单个迭代中发送的每个消息

我想进一步了解Objective-C运行时,并认为这将是一个良好的开端。

这些函数将根据进程的PID将所有消息记录到/tmp中的文件中。在模拟器上很好,但在iDevice上不好。

// Start logging all messages
instrumentObjcMessageSends(YES);
// Stop logging all messages
instrumentObjcMessageSends(NO);

CFRunLoopObserver不透明类型应该完全按照您的意愿执行。它是

一种在运行循环中的不同点接收回调的通用方法。

在其创建函数中使用activity参数,以指定需要为观察者提供服务的时间。对于您的情况,这可能是kCFRunLoopEntrykCFRunLoopExit

您可以从当前的NSRunLoop[[NSRunLoop currentRunLoop] getCFRunLoop]或使用CFRunLoopGetCurrent()获得CFRunLoopRef

最新更新