协议就是定义一组方法实现类必须实现这些方法,类似于java的接口和抽象类
协议的定义语法:
@protocol 协议名 <父协议> 定义方法 @end 注:定义协议的关键字是@protocol,同时协议也是可以继承父协议的 协议中定义的方法还有两个修饰符: @required:这个表示这个方法是其他类必须实现的,也是默认的值 @optional:这个表示这个方法对于其他类实现是可选的
协议的定义TestProtocol.h
//oc协议的简单使用 @protocol TestProtocol <NSObject> @required//必须实现 -(void)printlf; +(void)getHotel; @optional//可选实现 -(void)setHotel; @end #endif /* TestProtocol_h */
文件TestExtends.h
#import "TestProtocol.h" @interface TestExtends: NSObject<TestProtocol>{ NSString* name; } @property NSString *name; //类似set和get方法 //@property name; -(void)setName:(NSString*)newName;//定义方法 -(id)initWithC:(NSString*)newName;//定义构造方法 @end #endif /* TestExtends_h */
TestExtends.m文件
#import "TestExtends.h" @implementation TestExtends @synthesize name; -(void)setName:(NSString*)newName{ NSLog(@"调用父类的setName方法"); } +(void)getHotel{ NSLog(@"getHotel");//必须实现的方法 } -(void)printlf{ NSLog(@"printlf");//必须实现的方法 } -(void)setHotel{ NSLog(@"setHotel");//可选的方法 } -(id)initWithC:(NSString *)newName{ if (self==[super init]) { name=newName;// NSLog(@"父类的构造方法被调用。。。。"); } return self; } @end
mian文件
TestExtends* te=[[TestExtends alloc] init];
[te setName:@"Object-c"];
NSLog(@"简单的实现");
[te printlf]; //调用协议的方法
运行结果:
2015-11-04 23:04:40.179 test_01[1432:80295] 调用父类的setName方法
2015-11-04 23:04:40.180 test_01[1432:80295] 简单的实现
2015-11-04 23:04:40.180 test_01[1432:80295] printlf
(lldb)
相关推荐
协议(取值)
oc485通信协议
千锋OC源码:目录 OC语言教程-第1讲-基本语法 OC语言教程-第2讲-点语法 ...OC语言教程-第7讲-协议 OC语言教程-第8讲-协议代理设计模式 OC语言教程-第9讲-Category语法 OC语言教程-第10讲-Blocks语法
让oc像swift那样给@protocol协议添加方法的默认实现教程加demo,例子里面实现了xib文件,遵守协议以后直接就能被调用的例子
2.OC使用协议实现多继承,可以遵守多个协议实现多接口。category是OC中的类别,类别是用于给一个现有类添加新方法。重写类一般采用继承的方式,分类(类别)在给以个类添加同名方法后,会造成原有类中方法的实效,而...
使用非正式协议实现代理功能的简单demo分享给大家
EPC代融资及工程项目总承包合作框架协议oc.pdf
本文将使用CoAP协议来对接华为OC平台,使用的通信模组是ESP8266,如果使用NB-IOT来对接华为OC平台简单很多,因为NB-IOT的设备标识符在平台绑定,那么使用几个AT指令即可完成华为OC平台的对接和发送数据。 小熊派的...
《用户协议及隐私政策》 弹框的实现步骤: 1、自定义TextView,采用富文本属性进行内容设置attributedText(包括下划线NSUnderlineStyleSingle、超链接NSLinkAttributeName 、颜色NSForegroundColorAttributeName 等...
空调485监控PeX 空调 OC485 卡Modbus 通讯协议 概述 PeX 空调OC485 卡(后续称作OC485)通过Modbus 协议给监控系统提供空调机组 运行状态信息, 在 RS485 网络中作为从机节点,提供RS485 接口。 传输模式 OC485 的...
东西不多简单易懂、Swift语言如何使用UITableView、Swift与OC的混合开发、扩展(Extension)的简单使用、协议(protocol)
串口通信用的是什么协议串口通信用的是什么协议串口通信用的是什么协议
2、利用苹果系统框架的JSContext的block方式 或者JSExport协议方式 第二:OC调用JS的方法 1、采用stringByEvaluatingJavaScriptFromString写入JS代码,调用JS的方法 2、采用系统框架的JSContext ...
利用JavaScriptCore实现JS与OC相互调用的,简单好理解,实现协议的话方法千万要JS和OC保持一直,否则不生效,这要注意
HTTP协议精解HTTP协议精解HTTP协议精解HTTP协议精解HTTP协议精解HTTP协议精解HTTP协议精解
(3)声明一个Student的委托协议和必选一个协议方法,该协议方法可以在 学生计算完成平均分后告诉委托计算结果;(5分) (4)让Teacher遵守(3)中协议并与每个Student间建立委托的设计模式, 在Student平均分...
贡献欢迎所有贡献-oc使用Apache 2许可证,不需要任何贡献者协议即可提交补丁。 请打开遇到的任何错误或问题的问题,在OpenShift IRC频道(在freenode上的#openshift-dev)上提问,或参与容器运行时层的和。建筑要...
超频工具 POSIX Shell脚本,可从... 注意:如果使用“ Clone or download按钮,则会Clone or download OC-tool的文件,但它不是一个回购协议,运行时会出错,因为它无法从github更新 要求 应该可以访问sh , bash ,