iOS 内存管理机制
2018-01-08 18:29
190 查看
alloc 与 init 理解
MyClass *myObj = [[MyClass alloc] init]; => MyClass *myObj = [MyClass alloc]; myObj = [myObj init];
alloc 分配了内存给对象,让他不释放,并且把地址返回给指针。但是这块内存不能使用,因为没有被正确的
初始化。init即是对分配的这块内存进行初始化。
[pool release]和[pool drain]的区别
drain 只是用于清除pool中的对象,不会销毁池,release先调用drain方法清理对象,然后再释放自己的内存。
在ARC中使用自动释放池
如果在线程中需要大量分配内存,我们理应添加上自动释放池,以防内存泄露。比如在for循环中要分配大量的内存处
理数据,那么我们应该在for循环内添加自动释放池,在每个循环后就将内存释放掉,防止内存泄露。
NSZone
ARC中不能使用NSZone,NSZone是Apple用来分配和释放内存的一种方式,它不是一个对象,而是使用c语言结构存储了关于对象的内存管理的信息。基本上开发者是不需要去理会这个东西的,cocoa Applicaton使用一个系统默认的NSZone来对应应用的对象进行管理。
深拷贝和浅拷贝
浅拷贝拷贝的是内存地址即指针的拷贝,深拷贝拷贝的是对象的具体内容,从新开辟一块内存存储,与原对象互不影响。
例:NSString *name = @"zhou"; NSString *newName = [name copy];
NSLog(@"name:%p",name); NSLog(@"newName:%p",newName);
打印的俩个地址是一样的。(注意:打印指针的值是一样的,打印指针的地址是不一样的。NSLog(@"name:%p",&name)这样打印的结构是不一样的,因为copy浅拷贝是拷贝的指针,也就是说从新生成了一个指针,所以俩个指针的地址是不一样的。)
MyClass *myObj = [[MyClass alloc] init]; => MyClass *myObj = [MyClass alloc]; myObj = [myObj init];
alloc 分配了内存给对象,让他不释放,并且把地址返回给指针。但是这块内存不能使用,因为没有被正确的
初始化。init即是对分配的这块内存进行初始化。
[pool release]和[pool drain]的区别
drain 只是用于清除pool中的对象,不会销毁池,release先调用drain方法清理对象,然后再释放自己的内存。
在ARC中使用自动释放池
如果在线程中需要大量分配内存,我们理应添加上自动释放池,以防内存泄露。比如在for循环中要分配大量的内存处
理数据,那么我们应该在for循环内添加自动释放池,在每个循环后就将内存释放掉,防止内存泄露。
NSZone
ARC中不能使用NSZone,NSZone是Apple用来分配和释放内存的一种方式,它不是一个对象,而是使用c语言结构存储了关于对象的内存管理的信息。基本上开发者是不需要去理会这个东西的,cocoa Applicaton使用一个系统默认的NSZone来对应应用的对象进行管理。
深拷贝和浅拷贝
浅拷贝拷贝的是内存地址即指针的拷贝,深拷贝拷贝的是对象的具体内容,从新开辟一块内存存储,与原对象互不影响。
例:NSString *name = @"zhou"; NSString *newName = [name copy];
NSLog(@"name:%p",name); NSLog(@"newName:%p",newName);
打印的俩个地址是一样的。(注意:打印指针的值是一样的,打印指针的地址是不一样的。NSLog(@"name:%p",&name)这样打印的结构是不一样的,因为copy浅拷贝是拷贝的指针,也就是说从新生成了一个指针,所以俩个指针的地址是不一样的。)
相关文章推荐
- ios 内存管理机制
- iOS 内存管理机制
- Mac OS X / IOS 内存管理机制简要说明
- IOS内存管理机制 好好学吧
- ios内存管理机制转载
- ios内存管理机制
- ios内存管理机制
- 【iOS开发-35】有了ARC内存管理机制,是否还需要担心内存溢出等问题?——面试必备
- iOS 内存管理机制(详细解说)
- 2013资料整理-iOS内存管理机制
- IOS内存管理机制
- IOS内存管理机制
- ios内存管理机制
- iOS---Object-C之内存管理机制
- ios内存管理机制
- IOS内存管理机制
- 【iOS开发】 内存管理机制
- ios开发-Objective-C之内存管理机制
- iOS内存管理机制
- iOS内存管理机制解析