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

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

ios中的自动释放池相关推荐

  1. iOS中内存自动释放池

    自动释放池 iOS应用的主线程在每次runloop开始的时候创建自动释放池,在runloop结束的时候释放自动释放池.如果在一个runloop内,应用程序创建了大量临时对象,自动释放池可以减少内存峰值 ...

  2. iOS内存管理 —— 自动释放池和runloop

    iOS内存管理 -- 自动释放池和runloop 1. 自动释放池 1.1 自动释放池介绍 1.2 自动释放池底层原理 objc_autoreleasePoolPush autoreleaseNoPa ...

  3. (转)Objective-C Autorelease Pools(自动释放池)详解

    本篇将给您介绍"Autorelease Pools"(自动释放池)在应用中的使用技巧. 1,Autorelease Pools概要 一个"Autorelease Pool ...

  4. 【深入Cocos2d-x】探索Cocos2d-x中的内存管理-引用计数和自动释放池

    2019独角兽企业重金招聘Python工程师标准>>> #深入Cocos2d-x-探索Cocos2d-x中的内存管理-引用计数和自动释放池 ###引用计数(Reference Cou ...

  5. iOS 多线程 自动释放池常见面试题代码

    同步:代码依次执行,一个人执行多个任务,也是依次执行.一个人在同一时间只执行一个任务 异步:可以同时执行多个任务 进程:指在系统中运行的应用程序,每个进程都是独立的,都有独立的且安全的运行空间 线程: ...

  6. iOS之深入解析自动释放池autoreleasepool的底层原理

    一.自动释放池 autoreleasepool 原理 自动释放池是 OC 中的一种内存自动回收机制,它可以将加入 autoreleasePool 中的变量 release 的时机延迟. 简单来说,就是 ...

  7. 【iOS高级资深工程师面试篇】④、2022年,金九银十我为你准备了《iOS高级资深工程师面试知识总结》 内存管理部分2/2 引用计数-弱引用-自动释放池-循环引用

    iOS高级资深工程师面试篇系列 - 已更新3篇 UI部分1/3 -UITableView-事件传递&视图响应 UI部分2/3 -图像显示原理-UI卡顿&掉帧 UI部分3/3 -UIVi ...

  8. 内存管理-定时器循环、内存布局、tagged pointer、weak指针、copy、自动释放池

    先上代码,我们平时用的定时器,cadisplaylink.nstimer,CADisplayLink.NSTimer会对target产生强引用,如果target又对它们产生强引用,那么就会引发循环引用 ...

  9. 自动释放池 ARC机制

    IOS学习第24天 @class 1.两个类A和B,如果互相#import对方头文件,会造成死循环2.解决方式: 在其中的一方,不要用#import <xxx.h>来引入对方的头文件,用@ ...

最新文章

  1. 注册与验证码php源代码,一个简单的PHP验证码实现代码
  2. 淘宝服务端高并发分布式架构的十四次演进之路
  3. PHP json_decode 对 JSON 格式的字符串进行编码并获取对应的值
  4. 看聊天记录都学不会C语言?太菜了吧》(16)我一直以为校花很漂亮,直到我叫了她一声...
  5. 再读TCP/IP网络7层协议
  6. MyBatis-Plus_Condition作用
  7. mysql/sqlyog导入txt文件的方法
  8. Go语言语法学习:打印九九乘法表
  9. string常用函数用法集合
  10. Halcon OCR识别
  11. SLAM和三维重建中的SFM区别
  12. Dbutils常见方法
  13. 小米 Notebook Air 2016 13.3黑苹果efi引导文件
  14. 中国网页游戏行业调研与分析
  15. 微信小程序开发笔记1——使用npm脚本实现自动化切换环境配置
  16. 尚硅谷《全套Java、Android、HTML5前端视频》
  17. 数字电路之Verilog红绿灯设计
  18. 设计一款理财产品并发布推广
  19. 深入理解函数式编程(下)
  20. 达尔文的进化论VS柏拉图的理念论

热门文章

  1. deno使用rust_如何在Deno和Oak中使用MySQL
  2. uber_Uber是如何制成的
  3. Spring Boot与Redis的集成
  4. java注解的执行顺序_深入理解Spring的@Order注解和Ordered接口
  5. PL/SQL编程:用for循环算出5的阶乘
  6. android 系统锁屏音乐播放器,Android实现音乐播放器锁屏页
  7. 聊聊jesque的几个dao
  8. 42. fastjson处理下划线和驼峰问题的方法和源码分析
  9. ls和find命令查找的一些小技巧
  10. POJ 1017 Packets 贪心 模拟