ios block 内存管理时使用注意
2023-09-11 14:17:18 时间
XMGStudent *stu = [[XMGStudent alloc] init]; __weak XMGStudent *weakStu = stu; stu.block = ^{ NSLog(@"begin - block"); XMGStudent *strongStu = weakStu; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [strongStu study]; }); }; stu.block(); /* 1.默认情况下, block是放在栈里面的 2.一旦block进行了copy操作, block的内存就会放在堆里面 3.堆里面的block(被copy过的block)有以下现象 1> block内部如果通过外面声明的强引用来使用某个对象, 那么block内部会自动额外产生一个强引用指向所使用的对象 2> block内部如果通过外面声明的弱引用来使用某个对象, 那么block内部会自动额外产生一个弱引用指向所使用的对象 */ NSLog(@"----over---");
相关文章
- Flex AIR应用拍照功能(Android和IOS版本)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十九)
- iOS开发之遍历Model类的属性并完善使用Runtime给Model类赋值
- 如何创建可扩展表视图中的iOS 学习和拓展优化(有待更新)
- iOS设计模式 - 单例模式
- iOS单元测试1
- 【IOS-COCOS2D-X 游戏开发之十五】COCOS2DX中响应ANDROID的BACK(返回)与MENU(小房子)事件&&COCOS2DX自动释放粒子内存函数!
- IOS中 浅谈iOS中MVVM的架构设计与团队协作
- Cocos2d-x与ios内存管理分析(在游戏中减少内存压力)
- iOS开发缓存机制之—内存缓存机制
- iOS oc 字符串在内存的哪个区?
- iOS 内存管理 面试题总结
- iOS block源码分析
- ios内存管理(ARC MRC 内存分区 野指针)
- ios swift跳到设置界面(苹果现在只能跳到设置主界面,不能跳到设置里面细分的界面)
- cordova cordova-plugin-dialogs插件的navigator.notification.confirm方法和alert的方法同时调用,在iOS上app会死掉
- iOS音视频开发十二:视频解码,MP4 → H.264/H.265 → YUV 的源码
- Ios开发之 -- js和ios的交互
- iOS开发--漫谈内存管理(一)
- 【iOS开发-35】有了ARC内存管理机制,是否还须要操心内存溢出等问题?——面试必备