码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-12-15 19:30:50      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

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

     ****. 类目,延展   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,必须实现

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

标签:

原文地址:http://www.cnblogs.com/ytmaylover/p/5049199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!