你的位置:首页 > 软件开发 > 操作系统 > IOS阶段学习第21天笔记(ARC内存管理

IOS阶段学习第21天笔记(ARC内存管理

发布时间:2015-07-15 01:00:10
IOS学习(OC语言)知识点整理 一、OC 中的ARC内存管理 1)ARC中释放对象的内存原则:看这个对象有没有强引用指向它 2)strong:强引用,默认情况下的引用都是强引用 3) weak:弱引用__weak 4)ARC环境下:与 ...

IOS学习(OC语言)知识点整理

 

一、OC 中的ARC内存管理  

1)ARC中释放对象的内存原则:看这个对象有没有强引用指向它  

2)strong:强引用,默认情况下的引用都是强引用  

3) weak:弱引用__weak  

4)ARC环境下:与内存相关的代码都不能使用了,如果要在ARC环境下使用MRC内存管理代码 如:

       [super    delloc]  选中项目找到 Build Phases 菜单下的  Compile Sources 项 选中要转换的.m文件, 

       双击写入此行代码:-fno-objc-arc  即可  

5)将MRC代码转换成ARC代码 操作:可以在Xcode 左上角Edit 菜单下的Convert中选择To Objective-C ARC…

      项设置一下即可  

6)如果两个对象的两个指针互相引用,会出现对象的内存无法释放的问题,解决办法:一端用strong,

      一端用weak, 如果是peroperty中的基本类型用assign  

7)ARC 操作 实例代码:  

 1 //main.m中的代码 2 Person *p1=[[Person alloc]init]; 3 //上一个对象没有强引用指向,内存会被释放掉 4 p1=[[Person alloc]init]; 5 NSLog(@"********"); 6 //错误的写法,表明有一个弱引用指向对象,这条语句执行完毕后对象就被释放了 7 __weak Person *p2=[[Person alloc]init]; 8 NSLog(@"+++======="); 9 10 //Person.h中的代码11 #import <Foundation/Foundation.h>12 @class Card;13 @interface Person : NSObject14 @property(nonatomic,strong)Card *card;15 @property(nonatomic,strong)NSString *name;16 @property(nonatomic,assign)int age;17 @end18 19 //Card.h中的代码20 #import <Foundation/Foundation.h>21 #import "Person.h"22 @interface Card : NSObject23 @property(nonatomic,weak)Person *person;24 @end

原标题:IOS阶段学习第21天笔记(ARC内存管理

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。