美文网首页
NSAutoreleasePool showPools

NSAutoreleasePool showPools

作者: 传说中的汽水枪 | 来源:发表于2019-06-16 18:31 被阅读0次

NSAutoreleasePool 显示所有自动释放池的内容:

void test_showPools() {
    NSObject *obj = [[[NSObject alloc] init] autorelease];
    NSLog(@"obj:%@", obj);
    SEL sel = NSSelectorFromString(@"showPools"); // 没有开放此接口,所以使用performSelector
    // NSAutoreleasePool *pool = [NSAutoreleasePool new];
    // [pool performSelector:sel]; // 会出现崩溃
    [NSAutoreleasePool performSelector:sel]; // 能正确的输出
}

放在main.m(*此文件需要标识成禁止ARC)中

int main(int argc, char * argv[]) {
    test_showPools();
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

输出的结果:

objc[1335]: ##############
objc[1335]: AUTORELEASE POOLS for thread 0x112c8e5c0
objc[1335]: 1 releases pending.
objc[1335]: [0x7ff276004000]  ................  PAGE  (hot) (cold)
objc[1335]: [0x7ff276004038]    0x600000018fc0  NSObject
objc[1335]: ##############

相关文章

网友评论

      本文标题:NSAutoreleasePool showPools

      本文链接:https://www.haomeiwen.com/subject/wemkfctx.html