01 类目Category、延展Extension、协议Protocol、计数器的使用NSTimer
2016-07-20 01:02
274 查看
一、类目Category
*怎样为类添加一个方法:
修改源代码
编写此类的子类
*OC中常见的扩展方式:
类目Category、延展Extension、协议Protocol
1、介绍:
类目可以为一个现有的类添加新的方法
类目与原类同级,是原始类的一部分,方法也同级
类的类目新增的方法可以它的子类继承
2、注意事项
类目中只能写方法,不能添加成员变量
同一个类可以添加多个类目,但不能重名
可以覆写现有类的方法,原方法不能被调用
3、类目的创建
command + N >> OS X 中 Objective-C File >> File Type 选择 类目Category。
4、多重类目
多重类目不要重写一个方法,如果重写了同一个方法,那么系统只调用重写后 方便调用的那个方法。
5、类目中方法的创建,和类中一样。只是没有实例变量(属性)
二、延展Extension
*、介绍
在类的实现文件中定义的类目,叫做延展
延展是匿名的类目,定义“私有”的方法
@interface 延展名 () //小括号里可写可不写
@end
主要用来介绍 当前文件内哪些是闭源的 (闭源就是不访问,“私有的”,只有实现没有声明的)
写在
.m
文件中,需要遵循 OC
书写规则。而 单独创建的的延展.h文件
没有语法检查
三、协议Protocol
1、概述
协议声明了可被其他的类实现的方法
协议不是类,只是一个其他类实现的接口
2、协议的创建与签订
@protocol 协议名 <必须遵守的协议> ————(协议名称必须唯一)
@protocol Protocol <NSObject>
@required (默认类型) 放在方法声明前面,用来修饰必须实现的方法 。
@optional 可以选择实现的方法
@end (结束)
3、协议的采用: 必须将协议的头文件 导入需要实现方法的目标类的头文件内,并<留名> 签订
Tiger 采用 ZooRule协议
#import"ZooRule.h"
@interface Tiger :NSObject <ZooRule> //签订协议<协议名>
假如Tiger类 要同时采用两个协议
@interface Tiger :NSObject <ZooRule,ManagerRule>
在协议中声明的方法,在类的 .h文件中就没必要再声明了。
在实现文件文件中用 下列标记,方便程序的阅读与修改
加注释方法:
#pragma mark -协议中@required
#pragma mark -协议中@optional
3、协议的作用
协议写有达到某种功能所有需要的方法,而每个类可能只需要实现其中少数的几条方法。只有全部实现才能获得一系列的有用功能
4、协议和数据类型
你可以在使用的数据类型中为实例变量和方法参数指定协议名称;
如:id 类型表示一个可以指向任何类型的对象的指针,它是泛指对象类型。如果用一个尖括号<>括起来的协议名称跟随在id 之后,则编译器(或读者)将知道你期望任意类型的对象,只要遵守该协议。id<Delegate>
_argent;
四、计数器的使用
1、TimerInterval:时间戳,每隔几秒调用一次。double 类型数据
2、target:调用方法的对象
3、selector:需要被调用的方法
4、userInfo:id 类型的用户信息,用以区分,在KVO会详细讲。可使用 nil
5、repeats:是否重复: YES /NO
[NSTimerscheduledTimerWithTimeInterval:2
target:self
selector:@selector(test:)
userInfo:@“Hello"
repeats:YES];
- (void)test:(NSTimer *)timer {
id userInfo = timer.userInfo; //接收userInfo 信息
[timerinvalidate]; //终止定时器
}
6、让程序读到此处停下,但还在运行,直到某一个时间,再继续往下运行
NSDate
*date = [NSDatedateWithTimeIntervalSinceNow:10];
[[NSRunLoopcurrentRunLoop]runUntilDate:date];
7、让程序一直运行在此处逗留
// [[NSRunLoop currentRunLoop]run];
*怎样为类添加一个方法:
修改源代码
编写此类的子类
*OC中常见的扩展方式:
类目Category、延展Extension、协议Protocol
1、介绍:
类目可以为一个现有的类添加新的方法
类目与原类同级,是原始类的一部分,方法也同级
类的类目新增的方法可以它的子类继承
2、注意事项
类目中只能写方法,不能添加成员变量
同一个类可以添加多个类目,但不能重名
可以覆写现有类的方法,原方法不能被调用
3、类目的创建
command + N >> OS X 中 Objective-C File >> File Type 选择 类目Category。
4、多重类目
多重类目不要重写一个方法,如果重写了同一个方法,那么系统只调用重写后 方便调用的那个方法。
5、类目中方法的创建,和类中一样。只是没有实例变量(属性)
二、延展Extension
*、介绍
在类的实现文件中定义的类目,叫做延展
延展是匿名的类目,定义“私有”的方法
@interface 延展名 () //小括号里可写可不写
@end
主要用来介绍 当前文件内哪些是闭源的 (闭源就是不访问,“私有的”,只有实现没有声明的)
写在
.m
文件中,需要遵循 OC
书写规则。而 单独创建的的延展.h文件
没有语法检查
三、协议Protocol
1、概述
协议声明了可被其他的类实现的方法
协议不是类,只是一个其他类实现的接口
2、协议的创建与签订
@protocol 协议名 <必须遵守的协议> ————(协议名称必须唯一)
@protocol Protocol <NSObject>
@required (默认类型) 放在方法声明前面,用来修饰必须实现的方法 。
@optional 可以选择实现的方法
@end (结束)
3、协议的采用: 必须将协议的头文件 导入需要实现方法的目标类的头文件内,并<留名> 签订
Tiger 采用 ZooRule协议
#import"ZooRule.h"
@interface Tiger :NSObject <ZooRule> //签订协议<协议名>
假如Tiger类 要同时采用两个协议
@interface Tiger :NSObject <ZooRule,ManagerRule>
在协议中声明的方法,在类的 .h文件中就没必要再声明了。
在实现文件文件中用 下列标记,方便程序的阅读与修改
加注释方法:
#pragma mark -协议中@required
#pragma mark -协议中@optional
3、协议的作用
协议写有达到某种功能所有需要的方法,而每个类可能只需要实现其中少数的几条方法。只有全部实现才能获得一系列的有用功能
4、协议和数据类型
你可以在使用的数据类型中为实例变量和方法参数指定协议名称;
如:id 类型表示一个可以指向任何类型的对象的指针,它是泛指对象类型。如果用一个尖括号<>括起来的协议名称跟随在id 之后,则编译器(或读者)将知道你期望任意类型的对象,只要遵守该协议。id<Delegate>
_argent;
四、计数器的使用
1、TimerInterval:时间戳,每隔几秒调用一次。double 类型数据
2、target:调用方法的对象
3、selector:需要被调用的方法
4、userInfo:id 类型的用户信息,用以区分,在KVO会详细讲。可使用 nil
5、repeats:是否重复: YES /NO
[NSTimerscheduledTimerWithTimeInterval:2
target:self
selector:@selector(test:)
userInfo:@“Hello"
repeats:YES];
- (void)test:(NSTimer *)timer {
id userInfo = timer.userInfo; //接收userInfo 信息
[timerinvalidate]; //终止定时器
}
6、让程序读到此处停下,但还在运行,直到某一个时间,再继续往下运行
NSDate
*date = [NSDatedateWithTimeIntervalSinceNow:10];
[[NSRunLoopcurrentRunLoop]runUntilDate:date];
7、让程序一直运行在此处逗留
// [[NSRunLoop currentRunLoop]run];
相关文章推荐
- Protocol Buffer技术深入理解(C++实例)
- 浅谈PHP Extension的开发――基础篇第1/2页
- Swift中用到extension的一些基本的扩展功能讲解
- iOS中的NSTimer定时器的初步使用解析
- IOS开发代码分享之用nstimer实现倒计时功能
- 浅析Objective-C中分类Category的使用
- IOS如何在Host App 与 App Extension 之间发送通知
- Python 实现 CNKI批量下载 和FireFox Extension 入门学习笔记
- Windows下开发PHP扩展
- SmartWatch2开发-SmartExtensionAPI简介
- SmartWatch2开发-开发者规范
- SmartWatch2开发-编译SDK和Demo
- SmartWatch2开发-ControlSample分析
- SmartWatch2开发-Control API简介
- SmartWatch2开发——如何从手表端向手机端发消息
- Some Notes of Protocol Buffer C++
- 安装 zookeeper PHP 扩展
- 扩展PHP[Extending PHP](一)