码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-10-29 21:33:40      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

今天学习内存管理的内容,比较抽象,应用的不是很多,但还是要理解,那现在我就来回顾一下,学习的内容吧!

一、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];

好啦,今天就总结到这里,大家一起共勉,加油吧!

 

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

标签:

原文地址:http://www.cnblogs.com/odileye/p/4921665.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!