protocol 协议

一、协议用于:观察者模式,代理模式

二、协议只是用来声明方法

只要一个类遵守了某一份协议,就能拥有这份协议中的所有声明的方法

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

一个类可以遵守多个协议

三、协议的定义

@protocol 协议名称<NSObject>

//方法声明列表

@end

四、类遵守协议:

@interface 类名:NSObject <协议名1,协议名2>

@end

五、约束关键字

@required//要求必须实现,不实现就会发出警告

@optional//不要求实现,可以实现可以不实现

//默认的必须实现

六、协议遵守协议

一个协议遵守另一个协议,就可以拥有另一个协议的所有方法声明

@protocol 协议名<协议名2>

@end

//NSObject是基协议,所有协议默认的遵守基协议

七、协议的提前声明

@protocol 协议名称;

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

类名<协议名称> *变量名;

id<协议名称>  变量名

时间: 2024-12-29 23:47:47

protocol 协议的相关文章

iOS开发-Protocol协议及委托代理(Delegate)传值

前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替.Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法.也就是说,它只告诉你要做什么,但具体怎么做,它不关心. 当 一个类要使用某一个Protocol(协议)时,都必须要遵守协议.比如有些必要实现的方法,你没有去实现,那么编译器就会报警告,来提醒你没有遵守×× 协议.注意,我这里说的是警告,而不是错误.对的,就算你不实现那些“必要实现”的方法,程序也是能运行的,只不过多了些警告. 我会

ISO 基础之 (十三) protocol 协议

一 简绍 protocol,简单来说就是一系列不属于任何类的方法列表,其中声明的方法可以被任何类实现.这种模式一般称为代理(delegation)模式.通过Protocol定义各种行为,在不同的场景采用不同的实现方式.在iOS和OS X开发中,Apple采用了大量的代理模式来实现MVC中View和Controller的解耦. 1.Protocol:就一个用途,用来声明一大堆的方法(不能声明成员变量),不能写实现. 2.只要某个类遵守了这个协议,就拥有了这个协议中的所有方法声明. 3.只要父类遵守

Arc 自动内存管理 分类Category 类扩展 Block 代码段 和 Protocol协议的一些简单知识的总结

1. Arc的使用 Arc是自动内存管理: arc的使用原则 1).只要对象没有任何强类型指针引用就会被释放’. 2).只要对象被任何强类型指针指引就不会被释放. 弱指针:__weak 被__weak修饰的指针就被称为弱型指针: 强类型指针 默认的指针都是强类型指针: 被__strong修饰的指针也是强类型指针. 使用Arc时可以重写dealloc方法,但是在重写方法时不能手动调用[super dealloc]: 在Arc中通过@property生成的属性如果是OC的对象那么要用Strong来修

Objective-C( protocol协议)

protocol 协议 protocol:用来声明方法 1.协议的定义 @protocol 协议名称 <NSObject> // 方法声明列表.... @end 2.如何遵守协议 1> 类遵守协议 @interface 类名 : 父类名 <协议名称1, 协议名称2> @end 2> 协议遵守协议 @protocol 协议名称 <其他协议名称1, 其他协议名称2> @end 3.协议中方法声明的关键字 1> @required (默认) 要求实现,如果没

IOS开发之——Protocol协议的使用

protocol ['pr?ut?k?l] (例子:http://blog.sina.com.cn/s/blog_6aafe9c90100yozz.html ) 一.说明 两个类进行通讯,用协议就比较方便. 1.协议声明了可以被任何类实现的方法 2.协议不是类,它是定义了一个其他对象可以实现的接口 3.如果在某个类中实现了协议中的某个方法,也就是这个类实现了那个协议. 4.协议经常用来实现委托对象.一个委托对象是一种用来协同或者代表其他对象的特殊对象. 5:委托,就是调用自己定义方法,别的类来实

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

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 可以用来声明一大堆方法(不能声明成员变量) 只要某个类遵守了这个协议,就相当于拥有这个协议中的所有方法声明 只要父类遵守了某个协议,就相当于子类也遵守了 //定义一个名叫MyProtocol的协议 MyProtocol.h @protocol MyProtocol <NSObject> @required//要求实现,不识闲会发出警告,如果什么都不写,默认是@required -(void)

黑马程序员-block代码块和protocol协议

一.block block是一个变量,这个变量类似c语言中的函数指针,在回调场合用的特别多.它可以封装代码,有返回值有形参.下面通过代码来说明block的定义和使用. 首先来看没有返回值没有形参的block 1 void (^myblock)() = ^{ 2 NSLog(@""); 4 }; 有返回值有形参的block 1 int (^sumblock)(int, int) = ^(int a, int b){ 2 return a + b; 3 }; 4 5 int c = sum

小白学开发(iOS)OC_ protocol(协议) (2015-08-09)

// //  main.m //  protocol(协议) // //  Created by admin on 15/8/12. //  Copyright (c) 2015年 admin. All rights reserved. // #import <Foundation/Foundation.h> #import "Person.h" #import "Student.h" /* 1. 什么是协议: >  协议实际上是一种向上抽象的思想

iOS开发之oc(十四)--protocol协议(1)

protocol:协议 想要拥有某些方法声明通过: // : 继承父类 // <> 遵守协议 协议:就是用来声明方法的,想要拥有某些方法声明,只需要遵守协议. 1.协议的定义 @protocol 协议名称 <NSObject> // 方法声明列表.... @end // 定义了一个名叫MyProtocol的协议 @protocol MyProtocol <NSObject> // @required 要求实现,不实现就会发出警告(默认是这个) // @optional