07-protocol

一、简单使用

1. 基本用途

* 可以用来声明一大堆方法(不能声明成员变量)

* 只要某个类遵守了这个协议,就相当于拥有这个协议中的所有方法声明

* 只要父类遵守了某个协议,就相当于子类也遵守了

2. 格式

* 协议的编写

@protocol 协议名称
// 方法声明列表
@end

* 某个类遵守协议

@interface 类名:父类 <协议名称>
@end

3. 关键字

@required:这个方法必须要实现(若不实现,编译器会发出警告)

@optional:这个方法不一定要实现

4. 协议遵守协议

* 一个协议可以遵守其他多个协议,多个协议之间用逗号,隔开

* 一个协议遵守了其他协议,就相当于拥有了其他协议中的方法声明

@protocol 协议名称 <协议1,协议2>

@end

5. 基协议

* NSObject是一个基类,最根本最基本的类,任何其他类最终都要继承它

* 其实还有一个协议,名字也叫NSObject,它是一个基协议,最根本最基本的协议

* NSObject协议中声明很多最基本的方法,比如description、retain、release等

* 建议每个新的协议都要遵守NSObject协议

6. 定义变量时指定协议

// NSObject类型的对象,并且要遵守NSCopying协议
NSObject<NSCopying> *obj;

// 任何OC对象,并且要遵守NSCoding协议
id<NSCoding> obj2;

二、代理设计模式

1. 设计原则

* 首先得拥有某个代理对象属性

* 其次要很清楚代理有哪些方法

* 最后要保证能解耦

2. 实现方案

* 定义一个protocol,在其中声明一些和代理沟通的方法

* 拥有一个代理属性 id<protocol>delegate

* 让代理遵守 protocol

3. 注意

1>协议可用定义在单独.h文件中,也可用定义在某个类中

* 如果这个协议只用在某个类中,应该把协议定义在该类中

* 如果这个协议用在很多类中,就应该定义在单独文件中

2> 分类可用定义在单独.h和.m文件中,也可用定义在原来类中

* 一般情况下,都是定义在单独文件

时间: 2024-11-05 12:26:30

07-protocol的相关文章

ysql+heartbeat+DRBD+LVS实现mysql高可用

在企业应用中,mysql+heartbeat+DRBD+LVS是一套成熟的集群解决方案,通过heart+DRBD实现mysql的主 节点写操作的高可用性,而通过mysql+LVS实现数据库的主从复制和mysql的读操作的负载均衡.整个方案在读写方面进行了分离,融合了写操作的高 可用和读操作的负载均衡,是一个完美又廉价的企业应用解决方案 目前流行的高可用解决方案: mysql的复制功能是通过建立复制关系和两台和多台机器环境中,一台机器出现故障切换到另一台机器上保证一定程度的可用性 mysql的复制

百度房间卡是否可骄傲是快乐积分拉斯科

http://www.ebay.com/cln/ycn6646/-/167568259015/2015.02.07 http://www.ebay.com/cln/gon-n31/-/167197496017/2015.02.07 http://www.ebay.com/cln/hu_d027/-/167453250013/2015.02.07 http://www.ebay.com/cln/ywa2962/-/167301832012/2015.02.07 http://www.ebay.co

Lab - Hot Standby Router Protocol

Topology Objective Configure inter-VLAN routing with HSRP to provide redundant, fault-tolerant routing to the internal network. Background Hot Standby Router Protocol (HSRP) is a Cisco-proprietary redundancy protocol for establishing a fault-tolerant

07 JavaWeb

软件开发的两种架构:c/s和b/s * C/S     client/server     客户端/服务器     例子:QQ     快播     暴风影音...          * 优点:交互性非常好,服务器压力小.          * 缺点:客户端软件,下载客户端软件.                        * B/S     Browser/server     浏览器/服务器     例子:购物网站     12306购票     淘宝          * 缺点:交互性不

协议Protocol

1.协议:是一组声明方法的集合,不能声明成员变量,作用类似于接口. 遵守此协议的类就相当于拥有了这个协议的所有方法的声明,如果父类遵守了某个协议,子类也遵守了这个协议. 遵守这个协议的类可以实现协议中的方法. 关键字: @required:声明必须遵守的方法 @optional:声明可选的方法 2.代理:实现协议的某个方法 3.委托:指定要实现协议方法的对象(代理),代理来实现对应的方法 总结: 委托方:1.定义协议:2.引用代理:3.发送消息 代理方:1.遵守协议:2.实现方法:3.设置自己为

NTLM related protocol

http://blogs.technet.com/b/askds/archive/2011/07/28/troubleshooting-sid-translation-failures-from-the-obvious-to-the-not-so-obvious.aspx http://anoopcnair.com/2014/05/27/microsoft-rpc-remote-procedure-call-point-mapper-details-sccm-troubleshooting/ h

点对点协议(Point-to-Point Protocol)

简介 点对点协议简称PPP协议,工作在数据链路层.设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机. 网桥和路由器之间简单连接的一种共通的解决方案. PPP协议的组成 建立.配置数据链路连接的LCP(Link Control Protocol) 网络控制协议NCP(Network Control Protocol) 将IP数据报封装到串行链路的方法 帧格式 PPP协议的数据单元称为帧,格式如图 总体格式是首部+数据部分+尾部. 首部从左至右依次是帧定界符,表示帧开始:

【故障处理】ORA-28040: No matching authentication protocol

1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 告警日志中频繁出现Using deprecated SQLNET.ALLOWED_LOGON_VERSION parameter.ORA-28040: No matching authentication protocol错误,9i的客户端连接到12c高版本的解决方案 ② Windows下使用oerr命令

序列化笔记之一:Google的Protocol Buffer格式分析

从公开介绍来看,ProtocolBuffer(PB)是google 的一种数据交换的格式,它独立于语言,独立于平台.作为一个学了多年通信的人,ProtocolBuffer在我看来是一种信源编码.所谓信源编码,就是将待传输的信源符号经过某种变换,转换成码流进行传输的这个变换过程.信源编码可分为两类:有损编码与无损编码,PB自然是属于无损编码,在无损编码中,又分为定长编码和变长编码,定长编码就是一个符号变换后的码字的比特长度是固定的,比如ASCII.Unicode都是定长编码,码字是8比特,16比特

Linux网络服务07——Postfix邮件系统

Linux网络服务07--Postfix邮件系统(一) 一.邮件系统概述 1.MTA(Mail Transfer Agent)邮件传输代理 一般称为邮件服务器软件.MTA软件负责接收客户端软件发送的邮件,并将邮件传输给其他的MTA程序,是电子邮件系统中的核心部分.常见的MTA软件有Windows系统的Exchange和Linux系统下的Sendmail.Postfix等. 2.MUA(Mail User Agent)邮件用户代理 一般称为邮件客户端软件.MUA软件功能是为用户提供发送.接收和管理