Я пытаюсь зафиксировать их, как показано во фрагменте ниже, и использую указатели для обозначения точек регистрации (с каждый журнал..Начало и журнал...Завершено. Я делаю следующее предположение:
- Что приложение: DidFinishLaunchingWithOptions: метод вызывается перед отрисовкой первого кадра (как описано в видео).
- Рендеринг первого кадра будет завершен после завершения текущего цикла выполнения.
Код: Выделить всё
void PerformWhenIdle(dispatch_block_t block) {
CFRunLoopObserverCreateWithHandler(kCFAllocatorDefault,
kCFRunLoopAfterWaiting,
NO,
0, ^(CFRunLoopObserverRef observer, CFRunLoopActivity activity) {
block();
});
}
// ----------------------------
// AppDelegate.m
- (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[logger logFirstFrameRenderingStarted];
PerformWhenIdle(^{
[logger logFirstFrameRenderingFinished];
[logger logExtendedStageStarted];
});
}
// ----------------------------
// in TableVC.m
- (void)viewDidAppear {
[self.tableView reloadData];
PerformWhenIdle(^{
[logger logExtendedStageFinished];
});
}
[img]https://i.sstatic. net/3KpYSRrl.png[/img]
Хотелось бы знать
Мои предположения неверны? если да, значит ли это, что инструмент неправильный?
[*]Если они неправильные, как мне лучше всего зафиксировать начальную и конечную точки первого визуализируемого кадра?
Подробнее здесь: https://stackoverflow.com/questions/784 ... irst-frame
Мобильная версия