类的扩展
2015-12-08 20:46
120 查看
NSDate:
一、NSDate时间日期类
1.获得零时区时间
2.获得东八区的时间
二、NSTimeInterval时间间隔(单位秒) double的typedef
1.利用时间间隔获取时间
2.获取两个时刻的时间间隔
三、时间戳:从1970.1.1到当前时间的时间间隔就叫时间戳
1.获取1970.1.1至今的时间间隔
四、NSDateFormatter NSDate和字符串的相互转换
1.NSDate 转 NSString (加八个时区)
2.NSString 转 NSDate (减八个时区)
设定日期格式:yyyy(年) - MM(月) - dd(日) H(小时) m (分钟)s(秒)
练习:计算一个当前时间和一个固定时间的差值如果差值在60妙以内输出“刚刚”,如果在60秒到3600之前,则输出“XX分钟之前”,若在3600到24
*3600 之内,则输出“XX小时之前”,若再24
*3600之外,则显示固定时间
Category(类目): 给不知道源码的类添加方法
练习1:使用Category为 NSString类添加一个类方法,实现去除字符串中的数字
练习2:使用Category为NSDate类添加一个类⽅方法(dateWithDateString:),实现将下述字符串转换为NSDate对象。
Extension(延展):管理私有方法以及私有实例变量
练习1:
给Student类添加延展,并在该类的方法中调用私有方法和变量
延展和类目的区别:
1.延展中可以添加实例变量,类目中不可以
2.延展中的方法和实例变量都是私有的,不能直接访问,类目中的方法外界可以访问
3.延展针对是已知类(因为它的实现只能在这个类的.m文件中写),类目中可以为不知道源文件的类添加方法;
4.延展中的子类不能继承,而类目中的方法子类可以直接使用
Protocol(协议):一套标准(一堆方法的声明),只有.h文件
Protocol的核心是实现delegate设计模式。
delegate(代理):通俗的讲就是代理商,主要的任务是帮你完成一些任务
(一)两种方式:
方式一: 在一个独立的文件中声明协议
方式二: 由某个类来声明协议
(二)解题步骤:
第一步: 指定协议
第二步: 指定协议方法(定义、两种方法) @required、 @optional
第三步: 添加代理人实例变量(在添加有代理人的类中调用方法, 需要加对代理人的判断)
第四步: 签订协议
第五步: 指定代理人
第六步: 实现协议方法(只需实现)
练习: 建立一个保姆协议,包含带孩子,做饭等方法。建立一个母亲类,母亲有一个id<BaoMuDelegate>delegate让护士作为代理,实现协议里的方法
一、NSDate时间日期类
1.获得零时区时间
2.获得东八区的时间
二、NSTimeInterval时间间隔(单位秒) double的typedef
1.利用时间间隔获取时间
2.获取两个时刻的时间间隔
三、时间戳:从1970.1.1到当前时间的时间间隔就叫时间戳
1.获取1970.1.1至今的时间间隔
四、NSDateFormatter NSDate和字符串的相互转换
1.NSDate 转 NSString (加八个时区)
2.NSString 转 NSDate (减八个时区)
设定日期格式:yyyy(年) - MM(月) - dd(日) H(小时) m (分钟)s(秒)
练习:计算一个当前时间和一个固定时间的差值如果差值在60妙以内输出“刚刚”,如果在60秒到3600之前,则输出“XX分钟之前”,若在3600到24
*3600 之内,则输出“XX小时之前”,若再24
*3600之外,则显示固定时间
Category(类目): 给不知道源码的类添加方法
练习1:使用Category为 NSString类添加一个类方法,实现去除字符串中的数字
练习2:使用Category为NSDate类添加一个类⽅方法(dateWithDateString:),实现将下述字符串转换为NSDate对象。
Extension(延展):管理私有方法以及私有实例变量
练习1:
给Student类添加延展,并在该类的方法中调用私有方法和变量
延展和类目的区别:
1.延展中可以添加实例变量,类目中不可以
2.延展中的方法和实例变量都是私有的,不能直接访问,类目中的方法外界可以访问
3.延展针对是已知类(因为它的实现只能在这个类的.m文件中写),类目中可以为不知道源文件的类添加方法;
4.延展中的子类不能继承,而类目中的方法子类可以直接使用
Protocol(协议):一套标准(一堆方法的声明),只有.h文件
Protocol的核心是实现delegate设计模式。
delegate(代理):通俗的讲就是代理商,主要的任务是帮你完成一些任务
(一)两种方式:
方式一: 在一个独立的文件中声明协议
方式二: 由某个类来声明协议
(二)解题步骤:
第一步: 指定协议
第二步: 指定协议方法(定义、两种方法) @required、 @optional
第三步: 添加代理人实例变量(在添加有代理人的类中调用方法, 需要加对代理人的判断)
第四步: 签订协议
第五步: 指定代理人
第六步: 实现协议方法(只需实现)
练习: 建立一个保姆协议,包含带孩子,做饭等方法。建立一个母亲类,母亲有一个id<BaoMuDelegate>delegate让护士作为代理,实现协议里的方法
相关文章推荐
- Apache FTPClient操作“卡死”问题的分析和解决
- CentOS下tmux安装与使用
- HDOJ 1269 迷宫城堡 tarjan算法
- 关于XMLHttpRequest.open()设置提交方式 (POST,GET)
- 买啤酒最优解问题
- 北大OJ3624
- 系统完善--美丽邵阳(三)
- (八十五)?: 运算符
- 七牛---关于Ruby SDK的各种Demo
- Gson->Gson创建json字符串,与解析json字符串
- 【 一次性密码】TOTP
- 实验5
- 北大OJ2388
- 关于win10 64位安装 XP 32位注意事项
- C++函数特性
- JSP表格的表头固定不动
- CSS颜色代码对照表
- iOS 简单使用Block回调
- leetcode -- Shortest Palindrome -- 不太理解
- [c++ 温故知新] 函数引用入参的作用