OC——内存管理
2013-10-08 22:37
253 查看
自动释放池
new .copy.alloc创建的对象不会自动入池,需要用real ease消息释放内存。
通过发送aotorelesase消息,将该对象添加到池中,。最好是手动释放。
例:Time *tme=[[[TIme alloc]init]aoturelease];这个耗费的内存要多。
用release比aoturelease更经济。
可以有多个自动释放池。 对象只放在离他最近的自动释放池里。
一个对象的创建可以通过alloc分配内存或copy复制,这关系到的方法:alloc, allocwithZone : ,copy ,copyWithZone, mutableCopy ,
mutableCopyWithZone;这些方法都可以使用引用计数为1,retain会使用引用计数加1,release会使引用计数减1.
mutable 可变的。
对象所有权。
Time *time=[Time alloc]init];
Time *monring;
monring=time;
这块空间有两个所有者。
对象所有者,是指向这块内存指针的个数
对象所有权和对象所有者没有关系。
对象所有权就是计数器的个数。
new .copy.alloc 创建的对象默认的计数器是1.
retai n 也是NSobject里面的函数。retain计数器加1,release 让计数器减1.
计数器默认是1. 代表有一个所有权 time retai n retain计数器加1,所有权加1。
所有权是指向这个内存所有者的个数。
自动释放池的作用是让计数器减1;
retainCount可以获得当前对象的引用计数,返回 NSUInteger 类型。这个不准。
注意:常量字符串 没有引用计数机制(返回-1)。
assign 浅拷贝,copy是深拷贝。 retain.
@property (assign)NSString *str;//assign是浅拷贝。
是默认的,主要用于基本数据类型。
@property (copy) NSString *str;//copy是深拷贝。(主要用于字符串里的)
@property(retain) NSString *str;//retain是引用计数的方式。
new .copy.alloc创建的对象不会自动入池,需要用real ease消息释放内存。
通过发送aotorelesase消息,将该对象添加到池中,。最好是手动释放。
例:Time *tme=[[[TIme alloc]init]aoturelease];这个耗费的内存要多。
用release比aoturelease更经济。
可以有多个自动释放池。 对象只放在离他最近的自动释放池里。
一个对象的创建可以通过alloc分配内存或copy复制,这关系到的方法:alloc, allocwithZone : ,copy ,copyWithZone, mutableCopy ,
mutableCopyWithZone;这些方法都可以使用引用计数为1,retain会使用引用计数加1,release会使引用计数减1.
mutable 可变的。
对象所有权。
Time *time=[Time alloc]init];
Time *monring;
monring=time;
这块空间有两个所有者。
对象所有者,是指向这块内存指针的个数
对象所有权和对象所有者没有关系。
对象所有权就是计数器的个数。
new .copy.alloc 创建的对象默认的计数器是1.
retai n 也是NSobject里面的函数。retain计数器加1,release 让计数器减1.
计数器默认是1. 代表有一个所有权 time retai n retain计数器加1,所有权加1。
所有权是指向这个内存所有者的个数。
自动释放池的作用是让计数器减1;
retainCount可以获得当前对象的引用计数,返回 NSUInteger 类型。这个不准。
注意:常量字符串 没有引用计数机制(返回-1)。
assign 浅拷贝,copy是深拷贝。 retain.
@property (assign)NSString *str;//assign是浅拷贝。
是默认的,主要用于基本数据类型。
@property (copy) NSString *str;//copy是深拷贝。(主要用于字符串里的)
@property(retain) NSString *str;//retain是引用计数的方式。
相关文章推荐
- OC的内存管理
- OC--内存管理--常见错误demo
- OC之内存管理
- 简述OC中内存管理机制。
- 黑马程序员_OC语言的内存管理1
- OC内存管理之ARC
- OC之内存管理(个人笔记)
- 第05天OC语言(08):多个对象内存管理练习分析
- 黑马程序员——OC——set方法内存管理和property
- 黑马程序员———OC的内存管理
- OC--内存管理(2)
- Swift OC 内存管理
- OC学习心得之内存管理
- OC--内存管理
- 【OC学习-11】ARC和内存管理里面的alloc、assign、new、retain、copy、mutableCopy、release说明
- OC内存管理-黄金法则
- 01-OC内存管理的基本原理
- iOS开发之OC内存管理(一)
- 探讨OC的内存管理 以及防止循环引用retain cycle 代理为什么用weak block为什么用copy
- 黑马程序员——OC基础---内存管理(autorelease,ARC)