#在蓝懿学习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];
好啦,今天就总结到这里,大家一起共勉,加油吧!
一、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开发笔记24-Foundation框架(下)
- iOS开发 ----- 加载动画之牛顿摆的实现
- iOS 集成支付宝
- IOS真机测试 -Xcode cannot run using the selected device. 解决办法
- iOS状态栏电量条颜色设置
- 开源 iOS 项目分类索引大全
- IOS开发笔记23-Foundation框架(上)
- iOS9 3DTouch开发 知识点详解
- IOS开发笔记22-block与@protocol
- 《iOS总结》上传报错:ERROR ITMS-90049
- iOS 中常用的几种函数 (向上,向下,四舍五入)取整, 总算是理解了
- iOS判断用户当前设备型号iPhone-model
- iOS 时间操作
- IOS--错误集锦--cell.accessoryType不显示内容
- 获取iOS设备型号的方法总结
- iOS 环信集成(二) 实现单聊
- IOS动画Core Animation详解
- iOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry)
- iOS使用系统服务-短信与邮件
- 系统服务开发汇总iOS开发系列--调用系统应用