博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios中的自动释放池
阅读量:4634 次
发布时间:2019-06-09

本文共 858 字,大约阅读时间需要 2 分钟。

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

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 }

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

转载于:https://www.cnblogs.com/huangzizhu/p/3961919.html

你可能感兴趣的文章
JS原型与原型链
查看>>
SVG.js 笔记 (一)
查看>>
struts2笔记01-环境搭建
查看>>
appium 控件定位
查看>>
oracle sql 获取本季度所有月份,上季度所有月份
查看>>
VUE的组件DEMO
查看>>
xshell连接Linux、ngix部署
查看>>
XCODE 6.1.1 配置GLFW
查看>>
vue element 关闭当前tab 跳转到上一路由
查看>>
4、面向对象
查看>>
[NOI2005]聪聪与可可(期望dp)
查看>>
POJ 3723
查看>>
解决sql2014的distribution系统库distribution.mdf过大问题
查看>>
Maven的安装
查看>>
angular初步认识一
查看>>
springmvc3.2+spring+hibernate4全注解方式整合(一)
查看>>
Elgg网站迁移指南
查看>>
素数筛法优化
查看>>
【转】常见系统中文字体的英文名
查看>>
installshield 注册dll
查看>>