黑马程序员----protocol-协议

1.协议的定义

@protocol 协议名称 <NSObject>
    // 方法列表......
   @end

2.如何遵守一份协议

1> 类遵守协议
    @interface 类名 : 父类名 <协议名称1, 协议名称2>
 
    @end


 
   2> 协议遵守协议
    @protocol 协议名 <协议名称1, 协议名称2>
 
    @end

3.协议中方法声明的关键字

1> @required(默认)
      要求实现方法,如果没有实现,就会有警告
 
   2> @optional
      不要求实现方法

4.定义一个变量的时候,限制这个变量保存的对象遵守某个协议

类名 <协议名称> *变量名;
   id <协议名称> 变量名;
 
   如果没有遵守对应的协议,编译器就会警告

5.@property中声明的属性也可以用作一个遵守协议的限制

@property(nonatomic, strong) 类名<协议名称> *属性名;
   @property(nonatomic, strong) id<协议名称> 属性名;

6.协议可以定义在单独的.h文件中,也可以定义在某个类中
   1> 如果这个协议只用在某个类中,应该将协议定义在该类中
 
   2> 如果这个协议用在很多类中,就应该定义在单独的.h文件中

7.分类可以定义在单独的.h和.m文件中,也可以定义在原来类中
   1> 一般情况下,都定义在单独的文件中,因为分类的作用就是在不改变原来类的前提下进行扩充方法
 
   2> 定义在原来中的分类,只要求能看懂语法

时间: 2024-10-07 06:32:36

黑马程序员----protocol-协议的相关文章

黑马程序员—18-oc协议与block

一.      简单使用 1.          基本用途 Ø   可以用来声明一大堆方法(不能声明成员变量) Ø   只要某个类遵守了这个协议,就相当于拥有这个协议中的所有方法声明 Ø   只要父类遵守了某个协议,就相当于子类也遵守了 2.          格式 Ø   协议的编写 @protocol 协议名称 // 方法声明列表 @end Ø   某个类遵守协议 @interface 类名 : 父类 <协议名称> @end 3.          关键字 协议中有2个关键字可以控制方法是

黑马程序员_ 利用oc的协议实现代理模式

先说下代理模式是什么吧 定义: 为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象 而代理对象可以在客户端和目标对象之间起到中介的作用. 在看过李明杰老师的课程后,我对代理模式有了最初步的理解,虽然还很浅显 但是也明白了代理模式的 一些作用跟用法.首先使用代理模式可以降低耦合度.大大的增强了代码的弹性. 举个例子,小明想看电影,但是没时间买票 于是就拜托小强去买票 最简单的方式就是 建立一个person类(小明) 一个agent类(代理类) ag

黑马程序员——网络编程篇

------- android培训.java培训.期待与您交流! ---------- 概述   1.网络模型        (1).OSI参考模型        (2).TCP/IP参考模型   2.网络通讯要素         (1).IP地址        (2).端口号         (3).传输协议    3.过程        1,找到对方IP. 2,数据要发送到对方指定的应用程序上.为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识. 为了方便称呼这个数据,叫做端口(逻

黑马程序员_Java网络编程

1,IP地址和InetAddress IP地址是互联网上每台计算机都有的自己的标记,IP地址分为5类,A类保留给政府,B类给中等规模的公司,C类给任何需要的人,D类用于组播,E类用于实验. A类  1.0.0.1-126.255.255.254  B类  128.0.0.1-191.255.255.254   C类  192.0.0.1-223.255.255.254  D类 244.0.0.1-239.255.255.254 E类 240.0.0.1-255.255.255.254 在以后开发

黑马程序员——Java网络编程之UDP传输

网络编程 网络模型 通讯要素:InetAddress(对象):ip地址,网络中设备的标识,不可记忆,可用主机名,本地回环地址:127.0.0.1主机名localhost 端口号 传输协议:UDP,将数据的源及目的封装成数据包中,不需要建立连接,每个数据包的大小限制在64K内,无连接,是不可靠协议,不需要建立连接,速度快.力求速度,不求数据的准确性.比如聊天软件,网络会议. TCP:建立连接,形成传输数据的通道,在连接中进行大数据量传输,通过三次握手完成连接,是可靠协议,必须建立连接效率稍低. S

黑马程序员_毕向东_Java基础视频教程_Java基础学习知识点总结

黑马程序员_毕向东_Java基础视频教程 Java基础学习知识点总结 2016年01月06日  day01 一.基础知识:软件开发 1.什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集合. 2.常见的软件:系统软件:如:DOS,Windows,Linux等.应用软件:如:扫雷,迅雷,QQ等. 3.什么是开发?制作软件. 二.基础知识:人机交互方式 4.软件的出现实现了人与计算机之间的更好的交互. 5.交互方式:图形化界面:这种方式简单直观,使用者易于接受,容易上手操作.命令行方式:

黑马程序员__GUI_网络编程

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- GUI 1.事件处理就是处理用户的一个操作这个事件,在事件发生的时候程序应做出什么反应.当事件发生在哪个组件上, 哪个组件就可以说是事件源.给事件源添加一个监听器对象,监听器对象中包含若干事件处理方法.如果事件发生了, 事件处理方法就会自

【黑马程序员】————简单的OC程序

一.  OC简介 C语言的基础上,增加了一层最小的面向对象语法 完全兼容C语言 可以在OC代码中混入C语言代码,甚至是C++代码 可以使用OC开发Mac OS X平台和iOS平台的应用程序 二.  OC语法预览 1.      关键字 基本上所有关键字都是以@开头 下面列举一些常见的关键字,看一眼就行了,不用去翻资料查找它们的含义 @interface.@implementation.@end @public.@protected.@private.@selector @try.@catch.@

黑马程序员_JAVA UDP网络编程学习笔记

一.UDP网络编程概述 采用TCP协议通信时,客户端的Socket必须先与服务器建立连接,连接建立成功后,服务器端也会持有客户端连接的Socket,客户端的Socket与服务器端的Socket是对应的,它们构成了两个端点之间的虚拟通信链路.与TCP通信不同,UDP是面向无连接的.不可靠的基于数据包的传输协议.即应用进程(或程序)在使用UDP协议之前,不必先建立连接.自然,发送数据结束时也没有连接需要释放.因此,减少了开销和发送数据之前的延时.UDP也采用端口来区分进程. 在java中,java.

黑马程序员-内部类、 抽象类、接口

java面向对象中比较重要的知识还有内部类,抽象类.接口,这些和封装.继承.多态一起赋予java强大的面向对象的能力 1.抽象类 在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的.如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类. 创建抽象类和抽象方法非常有用,因为他们可以使类的抽象性明确起来,并告诉用户和编译器打算怎样使用他们.抽象类还是有用的重构器,因为它们使我们可以很容易地将公共方法沿着