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

类目,延展,协议的基本概念

时间:2016-03-02 23:52:00      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:

Catgory(类目/分类
    1.分类是给原有类添加方法,它只能添加方法,不能添加属性(成员变量)
    2.分类中定义@property,只会生成setter/getter方法的声明,没有方法的实现以及私有变量。
    3.分类中的方法不能和本类的方法名相同,否则会有警告,而且调用的时候会优先调用分类的方法,即覆盖本类的方法。  
    4.分类的方法和实现分开,一对多,1个.h文件对应多个.m文件,典型的分散实现;
延展(Extension)
 1.延展为类创建私有方法,一个.m文件对应多个.h文件,分配权限时可以用(想用哪一个,就导入哪一个头文件)
协议(protocol)
1.协议相当于其它语法里的接口(抽象类)它只有声明没有实现。它可以声明一些必须实现的方法(默认的是必需实现required),也可以声明一些不一定实现的方法(@ optional)协议是谁遵循谁实现。一个类可以遵循多个协议,一个协议也可以遵循其他协议(多继承)。
2.判断对象是否遵循协议confromsToprotocol,是否实现协议:respondsToSelector.
protocol和继承的区别:1.继承之后默认就有实现,而property只有声明没有实现。2.相同类型的类可以用继承,但是不同类型的类只能使用property。3.property可以用于存储方法的声明,可以将 多个类中共同的方法抽取出来,以后让这些类遵守协议即可。
3.协议的的应用场景:类型的限制,可以将协议写在数据类型的右边,明确的标注如果想给该变量赋值,那么该对象必须遵守某个协议。
Persong<protocol> *w = [Person new];@property (strong nonatomic) Wife<protocol> *wife;类型限定写在数据类型的右边
1.当A对象想监听B对象的一些变化是,可以使用代理设计模式2.当B对象发生一些事情,想通知A对象的时候,可以使用代理模式。当A对象无法处理某些事情时,想让B对象帮忙处理。

类目,延展,协议的基本概念

标签:

原文地址:http://www.cnblogs.com/liumu/p/5236627.html

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