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

第七讲.NSDate,category(分类),extension(延展),protocol(协议),delegate(代理)

时间:2015-08-31 01:03:59      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

 

一、掌握NSDate和NSDateFormatter的使用
    NSDate是Cocoa中?用于处理日期和时间的基础类,封装了某一给定的
时刻(含日期,时间,时区)。
    了解NSDate的创建,如何计算当前时间,时间间隔,以及时间日期与字符之间的互转.
 
    1>.NSDate创建,当地时间计算,时间按间隔计算,时间与字符之间的互转
技术分享
 
 
 
练习题1:计算当前时间与一个固定时间按的时间差技术分享
 
 
练习二:字符串转化为日期对象技术分享
 
 
二、掌握Category的定义和使用(只能为类扩展类方法或实例方法)
1.主要作用是为:没有源代码的类添加方法
2.通过Category添加的方法会成为原类的一部分。从而达到扩展一个类的功能
   
3.如何定义Category:
           a. 新建文件
           b. 选择Objective-C Category模板
           c. 填写类名和分类名
           d. (.h)文件添加方法声明
           e. (.m)文件添加方法实现
           f. 需要使用的地方进行调用

4.caCategory的实现:

      /// NSString+SayHi.h 文件

        #import

     @interface NSString (SayHi)

      - (void)hi;

      @end

 

    // NSString+SayHi.m 文件

    #import "NSString+SayHi.h"

    @implementation NSString (SayHi)

    #pragma mark 实现hi方法

     - (void)hi

     {

         NSLog(@"这是通过category为NSString创建的hi方法");

     }

 

      @end

 

5.category与子类的区别

 

技术分享
 
 
 
 
练习题一:翻转或倒叙输出一个字符串(注意category只是扩展类方法其包括相应的.m和.h文件)
 
技术分享
 
技术分享
 
技术分享
 
 
 
 
 
 
练习题二:Category与NSDate的综合使用
     使用Category为NSDate类添加一个类方法(deWithDateString:),实现将下述字符串转换为NSDate对象。 将@“20140402142850”转换NSDate
技术分享
 
技术分享
 
技术分享
 
 
三、掌握Extension的定义和使用

    1.Extension的主要作用是为类添加‘私有’方法。
     我们在设计一个类的时候,有些方法需要对外公开(我们称为接口),有些方法可能仅仅内部使用(比如,是某个方法的一个小步骤)
     Extension的功能是帮我们去管理这些内部使用的方法(“私有”方法)
   2.Extension特点:
     a. Extension的语法格式和Category很相似
     b.相当于把Category的.h文件挪到了原始类的.m文件中,同时,其实现也是在原始类的.m文件内完成
     c. Extension针对的是自己的类,必须有源代码的类
 3.extension与category的区别
技术分享
 

定义Extension:在Person.m文件中添加Extension:
技术分享
 
 
四、掌握Protocol的定义和使用
  1.Protocol又名协议,是iOS开发中常用技术
  2.协议是一套标准(一堆方法的声明),只有(.h)文件
  3.接受协议的对象实现协议中定义的方法
  4.Protocol特点:(就像签订合同一样,遵循合同执行响应任务)
     a. 协议就像一张任务清单(或便利贴),上面写了一堆需要处理的事。清单交给谁,谁就要去完成清单上规定的任务。
     b. 协议定义好之后,需要有类去遵守这个协议,实现协议里面的方法
     c. 遵守协议即在(.h)文件的父类名后写上<协议名>。实现协议里的方法即在(.m)文件中实现协议中的方法。相当于给这个类添加了脱岗额方法。这个类的实例就可以调用这些方法。
技术分享
 
    实例:student类协议.相应的studentProtocol.h  student.h  student.m   文件内容代码
 
studentProtocol.h协议的声明(协议只有.h文件)
技术分享
 
student.h文件的声明(主要体现在遵循协议上)
技术分享
 
student.m文件的实现,(执行协议相关方法)
技术分享
 
 
五、掌握delegate的使用(代理)

     1.Protocol的核心使用场景是实现delegate设计模式
     2.delegate音译代理。通俗的讲就是代理商,主要的任务是帮你完成了一些任务
比如:保姆就可以认为是delegate,主要的任务是帮你带孩子、做饭、洗衣服等
    3.使用场景:
        凡是某些任务自己不去实现,想让别人去实现的时候,就可以指定一个代理,让代理帮你去做。你只需要通知代理去做某些事。

   4.代理使用方法:首先建立协议(只有.h文件声明一些方法)

                  然后让建立类的协议双方分别遵守协议

                  再次,让协议一方变成另一方的类中的的一个属性,这是建立代理的关键步骤

                  最后,让双方分别对协议方法进行相应的实现,再调用就可以完成代理事件了!

实例分析:建立一个保姆协议,包含带孩子,做饭等方法。

协议与代理的综合使用

nurseProtocol.h协议声明

技术分享

 

mather.h文件 遵循协议,以及引入代理,将保姆代理作为自身的一个属性(代理的标志)此为引入代理的关键步骤

技术分享

 

mather.m文件对协议的执行情况

技术分享

 

nurse.h文件引入协议并遵循字协议

技术分享

 

nurse.m执行协议相关方法

技术分享

 

第七讲.NSDate,category(分类),extension(延展),protocol(协议),delegate(代理)

标签:

原文地址:http://www.cnblogs.com/erdeng/p/4771980.html

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