ARC内存管理模式概要
来源:互联网 发布:spycall软件下载 编辑:程序博客网 时间:2024/06/10 06:25
__weak NSString * str = [[NSString alloc] initWithFormat:@"%d", 5];
NSLog(@"str = %@", str);
2013-04-28 14:14:55.800 ARC[1635:c07] str = (null)---->归零弱指针的好处
@interface CustomView : UIView
{
__weak id <CustomViewDelegate> m_delegate; // 弱指针
NSString * m_buttonTitle; // 强指针
}
@property (nonatomic, weak) __weak id <CustomViewDelegate> m_delegate;
@property (nonatomic, strong) NSString * m_buttonTitle;
非ARC模式下,如下写法
NSMutableArray * array = [[NSMutableArray alloc] initWithCapacity:0];
self.m_tableDataArray = array;
[array release];
NSMutableArray * array = [[[NSMutableArray alloc] initWithCapacity:0] autorelease];
self.m_tableDataArray = array;
ARC模式下写法
self.m_tableDataArray = [[NSMutableArray alloc] initWithCapacity:0];
.m文件里与手动管理一致,只是dealloc里面不能[m_name release];了,也不需要self.m_name = nil;了,OC强指针的对象不需要dealloc函数了,
15.ARC模式下的dealloc
顺便说一下,在你的 dealloc 方法中,你仍然可以引用成员变量,因为那时他们还没有 被释放,直到 dealloc 返回。
20.ARC中成员变量和属性
以我的观点,如果使用属性只是 为了简化内存管理的话,现在已经不再必要了。你仍然可以继续这么做,但我认为现在用成员变量更好,而只是你在需要让其他类从公共接口访问到内部数据时才使用属性。
点语法不仅限于属性使用,成员变量也可以使用。
唯一需要访问属性背后 的成员变量的地方是在 init 中,或者当你提供自定义的 getter 和 setter 方法时作为最佳时间,如果你定义了一个属性,那么你应该总是使用属性。
__block SecondViewController * weakSelf = self;
m_view.m_block = ^ {
};
- ARC内存管理模式概要
- ARC内存管理模式
- ARC内存管理概要
- ARC 概要
- CPU内存管理模式与 寻址
- iOS开发ARC内存管理与Block概要,你都懂了吗?
- iOS开发ARC内存管理与Block概要,你都懂了吗?
- Object-C 内存管理模式初探(一)
- 【内存管理】概要
- 内存管理概要
- android 内存管理概要
- 内存管理,ARC
- ARC内存管理
- arc依然内存泄露??!?!?!?!?!??
- ARC内存使用注意事项
- ARC 与内存管理
- iOS内存管理--ARC
- ARC 内存管理见解
- 租房公积金提取
- Struts2配置文件通配符的使用
- Mat类下设置ROI
- while ; do
- IOS学习:AVAudioPlayer播放音乐文件及读取ipod库中的音乐文件
- ARC内存管理模式概要
- javascript 防止重复提交
- C#利用Xml Transform把xml和Xlst转换为html
- cookie,domain的设置读取删除关系
- 黑马程序员_基础加强(AOP)
- [CMake] Warning! PATH too long installer unable to modify PATH!
- Linux内核中如何增加自己的驱动
- sprintf and snprintf的陷阱
- Android Itext调查文档