OC协议

概念:定义了一个接口,其他类负责来实现这些接口。如果你的类实现了一个协议的方法时,则说该类遵循此协议。

非正式协议:非正式协议虽名为协议,但实际上是挂于NSObject上的未实现分类(Unimplemented Category)的一种称谓。

协议的格式:

@protocol  协议名  <父协议>定义方法@end

协议中定义的方法还有两个修饰符:

  • @required:这个表示这个方法是其他类必须实现的,也是默认的值
  • @optional:这个表示这个方法对于其他类实现是可选的

协议可以和id一起使用

  • id<协议名称> 定义出来的指针,只能指向实现这个协议类的实例对象

conformsToProtocol

  • 使用可以使用 conformsToProtocol: 来检测一个方法是否遵循某协议如:
 id test;
 [test conformsToProtocol:@protocol(mDelegate)];

协议不引用任何类它是无类型的,一个类可以同时遵守多个协议。一个协议可以被多个类使用。

时间: 2024-11-09 00:54:40

OC协议的相关文章

OC协议的简单理解

新建一个工程,工程里面有Person, dog,blackman三个类,person需要找个人来帮他盖房子. 分析:dog是动物,肯定不会造房子,blakman,或许可以建房子,那程序如何判断blackman,dog能否建房子?那我们就需要一个东西来限定/指定他们的属性,这就是协议咯,协议在我看来就是一个可以限定/指定一些对象属性的东西,所以现在我们现在新建一个名为delegate的类 @protocol onedelegate <NSObject> //创建一个协议 @required //

oc 协议

@protocol myProtocol <NSObject> // 基协议 @required // 声明了必须要实现的,默认情况下都是 @required - (void)walk; - (void)speak; - (void)think; // think在类实现中未实现会警告!!! @optional - (void)sing; - (void)laugh; @end 协议可以声明一大堆方法,但不能声明成员变量: 两个协议之间不能继承,但协议可以遵守另一个协议: 子类可以遵守父类遵守

oc - 协议 protocol

@protocol myProtocol <NSObject> // 基协议 @required // 声明了必须要实现的,默认情况下都是 @required - (void)walk; - (void)speak; - (void)think; // think在类实现中未实现会警告!!! @optional - (void)sing; - (void)laugh; @end 协议可以声明一大堆方法,但不能声明成员变量: 两个协议之间不能继承,但协议可以遵守另一个协议: 子类可以遵守父类遵守

oc协议与代理简单例子

创建一个买票协议.该协议规定输出是否还有剩票 1 #import <Foundation/Foundation.h> 2 3 @protocol BuyticketsDelegate <NSObject> 4 5 @required 6 - (void) check; 7 8 @end 创建一个代理Agent遵守协议 1 #import "Buytickets.h" 2 @interface Agents : NSObject<BuyticketsDele

OC的协议

oc协议 在Object-C中,委托和数据源都是由协议实现的.协议定义了一个类与另一个类进行沟通的先验方式. 它们包含一个方法列表,有些是必须被实现的,有些是可选的. 任何实现了必需方法的类都被认为符合协议. 协议,是通过网络,计算机使用者进行通讯后,互相进行约定规定的集合.两个类进行通讯,用协议就比较方便.下面是CocoaChina 版主"angellixf"为新手写的协议入门介绍以及代码例子,希望对刚入门开发者有所帮助一.说明  1.协议声明了可以被任何类实现的方法  2.协议不是

OC语言--协议

1.协议的介绍 1.1什么是协议 协议就是需要相互遵守的约定.规范.比如卖身协议,我们负责给Boss写代码,调bug,发布,Boss负责给我们发薪水,保险,福利:比如Http协议,两台计算机,遵守相同的约定,可以相互通讯.就像我们彼此交流,都遵守说中文这个约定或规范. 2. OC中协议 2.1OC协议概念 OC或IOS中的协议,就是一组方法(成员函数)的声明列表:声明方不需要实现这些方法,由遵守协议的对象来实现协议所规定的方法.(制定法律规范,让别人遵守). 2.2OC协议的使用步骤 制定协议

iOS编译过程的原理和应用

前言 一般可以将编程语言分为两种,编译语言和直译式语言. 像C++,Objective C都是编译语言.编译语言在执行的时候,必须先通过编译器生成机器码,机器码可以直接在CPU上执行,所以执行效率较高. 像JavaScript,Python都是直译式语言.直译式语言不需要经过编译的过程,而是在执行的时候通过一个中间的解释器将代码解释为CPU可以执行的代码.所以,较编译语言来说,直译式语言效率低一些,但是编写的更灵活,也就是为啥JS大法好. iOS开发目前的常用语言是:Objective和Swif

Objective-C 部分

1. 你如何理解 OC 的内存管理 OC 内存管理是基于引用计数.谁想使用某个对象 B,就要把对象 B 的计数器+1,如果不 使用这个对象了,那么就把对象 B 计数器-1,如果 B 对象计数器减到 0,那么 B 对象自动 会调用自己的 dealloc 函数,也就是这个对象被销毁. 一句话就是 谁拥有对象,谁负责释放该对象,谁 alloc 谁应该 release 或者 autorelease 系统有一个自动释放池,对于一些对象我们可以放在自动释放池中.如果自动释放池本 身销毁,那么里面的内容会被全

读书笔记--关于Cocoa框架中的类

Chapter 10 Cocoa Classes iOS编程时, 实际是进行Cocoa编程. 所以必须熟悉Cocoa, 必须知道Cocoa是什么, 它能够做什么, 你和Cocoa如何进行"交流". Cocoa是一个庞大的Framework, 被分割成若干较小的Framework. 任何iOS编程人员都需要花费一定时间来熟练Cocoa. Cocoa中含有一些主要的规则和组件, 最好是以它们为主线来学习Cocoa. Cocoa大部分类都是OC写的, 虽然OC类和Swift类能相互转换.但S