【Objective-C学习记录】第三十天
类簇
类簇是Foundation框架中广泛使用的设计模式。类簇将一些私有的、具体的子类组合在一个公共的、抽象的超类下面,以这种方法来组织类可以简化一个面向对象框架的公开架构,而又不减少功能的丰富性。
类簇是一群隐藏在通用接口下的与实现相关的类,使得我们编写的代码可以独立于底层实现。如创建NSString对象时,得到的可能是NSLiteralString,NSCFString等,即不同的NSString对象调用同一个接口A,接口A的实现可能是不同的。
NSDate类
NSDate是Foundation框架中表示日期的类,用于获取当前时间,打印信息中包含:年月日、时分秒、零时区时间、时区。注意一定是零时区时间!
常用方法:
1.dateWithTimeInterval: sinceDate:。第一个参数是一个浮点数,表示秒数,第二个参数是一个NSDate类型的变量,该方法会返回一个NSDate对象,其值就是第二个参数表示的时间加上秒数得到的时间。比如实例化了一个NSDate对象表示现在时间,第一个参数填24*60*60(一天的秒数),即会得到明天的此时的NSDate变量。
2.timeIntervalSinceDate:。参数为NSDate类型,返回一个NSTimeInterval(double)类型的浮点数,表示从参数给定的时间到现在总共过去了多少秒。
3.timeIntervalSince1970:。表示从1970年1月1号起过去了多少秒(1970年1月1号是UNIX诞生的时间)。
NSDateFormatter类
NSDateFormatter类是日期格式类,作用是将NSDate对象与NSString对象互转。
常用方法:
1.setDateFormat:。设置日期显示的格式,如:@"yyyy-MM-dd HH:mm:ss"。
2.stringFromDate:。将日期对象转换为字符串对象。
3.dateFromString:。将字符串对象转换为日期对象。
类目(Category)
特点:
1.类目为系统内部的类或者是没有源代码的类添加方法,不能添加实例变量
2.添加的方法会成为原类的一部分,子类照样可以使用
3.类目的文件名位原类名+文件名
4.既可以添加实例方法也可以添加类方法
比如给NSArray类添加一个排序的方法,这样每个NSArray的对象都可以直接执行该排序方法。
延展(Extension)
特点:
1.延展是为 自定义的类扩展 功能而出现的
2.在类的.m文件上方,使用@interface关键字,构建延展
3.在延展中,我们既可以声明方法,也可以声明实例变量或者属性
4.新添加的内容属于本类的私有部分
协议(Protocol)