iOS 监听runloop swift oc

iOS 监听runloop swift oc,第1张

文章目录 RunloopListen.hRunloopListen.m在swift项目中使用参考博客

RunloopListen.h
#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface RunloopListen : NSObject

+ (void)listen;

@end

NS_ASSUME_NONNULL_END

RunloopListen.m
#import "RunloopListen.h"

@implementation RunloopListen

+ (void)listen{
    CFRunLoopObserverContext context = {0, (__bridge void *)(self), NULL, NULL, NULL};
       CFRunLoopObserverRef observer = CFRunLoopObserverCreate(kCFAllocatorDefault, kCFRunLoopAllActivities, YES, 0, &myRunLoopObserver, &context);
       
       NSRunLoop *myRunLoop = [NSRunLoop currentRunLoop];
       CFRunLoopRef cfRunLoop = [myRunLoop getCFRunLoop];
       CFRunLoopAddObserver(cfRunLoop, observer, kCFRunLoopDefaultMode);
}

void myRunLoopObserver(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *info)
{
    switch(activity)
    {
        case kCFRunLoopEntry:
            NSLog(@"run loop entry");
            break;
        case kCFRunLoopBeforeTimers:
            NSLog(@"run loop before timers");
            break;
        case kCFRunLoopBeforeSources:
            NSLog(@"run loop before sources");
            break;
        case kCFRunLoopBeforeWaiting:
            NSLog(@"run loop before waiting -----------------------");
            break;
        case kCFRunLoopAfterWaiting:
            NSLog(@"run loop after waiting -----------------------");
            break;
        case kCFRunLoopExit:
            NSLog(@"run loop exit");
            break;
        default:
            break;
    }
}

@end

在swift项目中使用

参考博客

iOS viewDidLoad 中创建的局部变量释放时机

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/994365.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-21
下一篇2022-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存