您的位置:首页 > 移动开发 > IOS开发

#在蓝懿学习iOS的日子#Day7

2015-10-29 20:01 281 查看
今天学习内存管理的内容,比较抽象,应用的不是很多,但还是要理解,那现在我就来回顾一下,学习的内容吧!

一、id:任意对象

self:调用自身类

super:引用父类本身的属性

二、内存管理

ARC:自动内存管理

MRC:手动内存管理

1、内存计数机制:内存计数表示当前对象被引用的次数,如果引用次数为0 则对象会从内存中释放掉

retain会对内存计数+1

release会对内存计数-1

2、retain(strong)assign(weak)copy对set方法的影响:

retain:两件事1.把原来的释放 2把新的retain+1——————现在使用的是strong

assign:直接赋值 --------系统默认的weak(可以不用写)

copy:调用copy并赋值

//声明属性时,要添加(关键字)

//对象

@property(nonatomic, strong) NSMutableArray *myArray;

//基本数据类型

@property(nonatomic)int x;

3、dealloc方法 当对象内存计数为0时会释放内存 释放之前会调用此方法 在arc中用来验证对象没有有释放掉

//当内存计数器为0的时候 会释放到对象 释放之前会调用此方法

例:- (void)dealloc

{

//需要把所有的全局变量release

//[_myArray release];

}

三、协议(即规则):只有遵循协议的才可以执行某种方法

1、创建类在类的.h文件

@protocol ManDelegate <NSObject>

//@optional //非必须

//@required //必须的

-(void)play;

@end

@interfaceMan : NSObject

-(void)playWithObject:(id<ManDelegate>)obj;

@end

2、在类的.M文件

-(void)playWithObject:(id<ManDelegate>)obj{

NSLog(@"大男人在玩");

[obj play];

}

3、在ViewController.M引入类的头文件

//声明对象

Man * m =[[Man alloc]init];

Boy*b =[[Boy alloc]init];

Girl *g =[[Girl alloc]init];

//使用方法

[m playWithObject:b];

[m playWithObject:g];

好啦,今天就总结到这里,大家一起共勉,加油吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: