您的位置:首页 > 其它

类的扩展

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让护士作为代理,实现协议里的方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: