iOS内存小知识

//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时再释放 会产生过度释放
       
       

原文地址:https://www.cnblogs.com/-ios/p/4672995.html