OC7-‍ 类目,延展 协议代理。

目标: **.   日期类和其他的配合使用类

     ****. 类目,延展   category/extention。

    *****.协议代理。 

1.日期类:NSDate,

   (1)oc中表示用的日期和时间,用的是nsdate,

   (2)日期在计算机中存储的是按照0时区来存储的。

   (3)日期类是通过存储1970年到现在的秒数,然后再计算当前时间的。

2.初始化,默认是按照0时区存储的。NSDate *date1=[NSDate dateWithTimeIntervalSinceNow:-2*60*60];

  (1)在初始化的时候, 设置时间便宜差,可正可负,正式加,负是减,

   (2)nstimeinterval用于存储时时间秒数差的变量,

   (3)在作为参数传递的时候,尽量以乘法表达式的形式书写。

3.nsdate的方法,求两个日期对象的时间差,

     NSDate *aimdate=[NSDate dateWithTimeIntervalSinceNow:-2*60*60];

     NSTimeInterval cha1=[aimdate timeIntervalSinceDate:[NSDate date]];

 4.nsdateFormater日期格式转换类。

    (1)初始化 [alloc init]

   (2)设置格式串 setdateformat 

   (3) [格式 stringfromdate date1]    注意1:非系统提供的转换符,会导致字符串的转换终止,

   (4)通过format 将字符串转化为nsdate。 注意2.formatter 将date转换成string 会自动进行时区的偏移转换,加8时区,再讲srting转换成date 的时候,也会进行时区的偏移转换,即-8个时区,

         NSDateFormatter *ndf=[[NSDateFormatter alloc]init];

                [ndf setDateFormat:@"现在时间:yyyy年MM月dd日 HH点mm分ss秒"];

         1)    NSDate *now=[NSDate date];

                NSString *datestr=[ndf stringFromDate:now];

         2)NSString *str=@"现在时间:2015年9月28日 11点00分00秒";

                  NSDate *aimdate=[ndf dateFromString:str];

 5.类目 category,类的目录,

  (1)作用是,给没有源代码的类,添加新的方法,

   (2)注意,通常的情况下,文件的名字是  :目标类名+要添加的方法名的缩写。

   (3)其声明和原类是一样的,只是后面没有继承符号,被(类目的名字)替换。

   (4)类目在实际开发中的意思,开发第三方,团队分工,完善特定的需求。减少代码冗余,

    (5)category是直接编译到原文件的,写完之后,其子类也拥有其方法。

 

6.延展:都是给类进行扩充,书写的格式也类似,

    (1)声明 和类的声明,还有类目的声明很像,类名+(),()内没有名字。

     (3)在一个类的实现文件里,声明属性和方法,Extension针对的是⾃自⼰己的类,必须有源代码的类

    (2)作用,给自己定义的类,添加完全私有的实例变量,

 

 

7..协议:

         一方制定协议,另一方选择是否接受。制定的规矩就是协议,接受协议的就是代理。

 (1)在制定协议的类,.h中,@protocol 开始,以@end 结束。

        @protocol MarryProtocol <NSObject> 

        方法声明

        @end

 接受协议:(1) 在类的.h文件 父类名后写上《协议名》

                          (2)实现协议。在.m⽂文件中实现协议中的⽅方法。

调用代理的方法: 

 @optional;规定下面的方法在代理中可选实现。 

  

 @required:默认的是required,必须实现

转载于:https://www.cnblogs.com/ytmaylover/p/5049199.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值