标签:
//ios没有垃圾回收机制,oc有垃圾回收机制,mac有垃圾回收机制,mac在10.1版本后被启用
//mrc(引用计数)手动分配并释放
//alloc 分配空间
//retain 引入计数加1
//copy 复制(另开辟空间,和原来的一样)
//release 释放,引用计数减1
//autorelease 在未来某一时刻减1
//dealloc 清除
//内存中会出现的问题:内存溢出,野指针
//gc:垃圾回收机制,可以自动判断那些内存是不再使用的,由系统帮助我们回收
//MRC:手动内存管理,也叫手动引用计数,由我们自己判断那块内存还在使用,同时判断有多少人在使用.当引用计数为0的时候,内存释放,同时指针置空,防止野指针
//ARC:自动内存管理,也叫自动引用计数,当我们需要引用计数-1时,由编译器帮我们添加release语句
//OC提供了垃圾回收机制,但是ios并未采用
//Mac OS 10.8之前使用垃圾回收机制,10.8之后弃用.
//关于引用计数的一些方法
//+alloc:开辟内存,设置引用计数为1.
//-retain:使引用计数+1.
//-copy:将内存或对象赋值一份,并将复制的内存或对象引用计数置1.
//-release:使引用计数-1.
//-autorelease:使引用计数-1,只不过是在出自动释放池之后才执行-1操作
//-dealloc:当引用计数为0时,由系统自动调用,释放空间
//自动释放池有两种形式:(优先使用第一种)
//第一种:@autorelease{}
//第二种:NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
//[pool release];
//当释放已经为0时再释放 会产生过度释放
标签:
原文地址:http://www.cnblogs.com/-ios/p/4672995.html