zoukankan      html  css  js  c++  java
  • ios中的自动释放池

    自动释放池中是否有虑重功能

    1 @autoreleasepool {
    2         UIView *view = [UIView alloc] init] autorelease];
    3         [view autorelease];
    4 }

    这样写在自动释放池的队列中是两个对象还是一个对象,就是说把view加到自动释放池的队列时,队列本身是否对内容进行了虑重

    防止对象的重复添加,比较view里面在队列中了,再次调用autorelease时还有没有作用。

    于是写了一个测试代码

     1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
     2 {
     3     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
     4     // Override point for customization after application launch.
     5     self.window.backgroundColor = [UIColor whiteColor];
     6     [self.window makeKeyAndVisible];
     7     
     8     UIView *view = [[[UIView alloc] init] autorelease];
     9     NSLog(@"%d", view.retainCount);
    10     [view autorelease];
    11     
    12     return YES;
    13 }

    运行起来之后没有崩溃,说明自动释放池本身是有虑重功能,不会重复添加对象。

  • 相关阅读:
    Leetcode | Work Break I & II
    X-Japan
    Leetcode | Gas Station
    jstring, String, char* 变换函数
    动态链接库的创建
    C语言实现md5函数代码
    ARM汇编指令集
    2014年 各类黑客工具包
    ARM汇编指令的一些总结-转
    ARM指令集学习总结-转载
  • 原文地址:https://www.cnblogs.com/huangzizhu/p/3961919.html
Copyright © 2011-2022 走看看