iOS:分类、协议、代理

1. 分类 :Categories

  -> modularise the definition of a class into groups or categories of related methods.

  -> extend an existing class definition

 应用场景: 1.为自定义的类,添加新方法时, 2.为库中的类(比如NSArray)扩展方法

  分类的作用:可以将类的定义模块化到相关方法的组或分类中,它还提供了扩展现有类定义的简便方式,并且不必访问类的源代码,也无须创建子类。


分类的定义:

接口部分

@interface 类名 (分类名)

需要添加的方法

@end


实现部分

@implementation 类名 (分类名)

方法的具体实现

@end


2.协议和代理 :Protocols and Delegation


协议的定义: 协议是多个类共享的一个方法列表,协议中列出的方法没有相应的实现,协议中列出的一组方法,@required 是必须实现的,@optional是选择实现。


@protocol 协议名称

@required

声明一些必须实现的方法

@optional

声明一些可选的方法

@end


如果你希望你的某个类采用协议,

可以通过在@interface行的父类名称后用一对尖扣号(<协议名>)内列出协议名称


可以使用 conformsToProtocol:方法检查一个对象是否遵循某项协议


协议是一种两个类之间的接口定义。定义了协议的类可以看作是将协议定义的方法代理了给实现它们的类    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值