ios培训之objective-c协议和代理

ios培训之objective-c协议和代理

ID:17946987

大小:111.00 KB

页数:6页

时间:2018-09-11

ios培训之objective-c协议和代理_第1页
ios培训之objective-c协议和代理_第2页
ios培训之objective-c协议和代理_第3页
ios培训之objective-c协议和代理_第4页
ios培训之objective-c协议和代理_第5页
资源描述:

《ios培训之objective-c协议和代理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、北京尚学堂提供在现实生活中我们存在各种各样的协议,但是都有一个共同点,就是拟定的协议,就要遵守,不遵守就是违约。在OC中也有协议这一个概念而且和我们现实生活中的协议的特点是类似的。有时我们自己想做什么事,但是现在没这个能力自己去做,亲力亲为,我们就需要找代理来帮我们做了。那么在OC中也有代理这个概念。下面就简单的说说OC中的协议和代理。一、协议在《【iOS开发之Objective-C】对象的交互》中实现了一种对象的交互的方式。在OC中还有其他方式,比如说协议,在OC中用协议来规范接口,是实现对象之间的交互的一种机制。类似于JAVA中的接口。还可以模拟多继承。协议的实

2、现第一步:使用Xcode新建一个工程;怎么新建一个工程第二步:新建一个OC文件;在这个工程里面NewFile----->Objective-CFile----->填写文件名–>在FileType里面选择“Protocol”最后点击Next。第三步:“拟定”协议;假设我和某人签订和一个协议,协议里面需要我执行一个动作:每天练习一小时OC编程;那么这条协议内容就是:      -(void)aDayCodeOneHour;这只是一个协议条款,协议自己本身事没有能力遵守协议或是实现协议。1.#import    2.@pr

3、otocol MyProtocol   3.- (void)aDayCodeOneHour;  4.@required  //缺省属性,必须要实现  5.- (void)show; //show 是必须要实现  6.@property (nonatomic,assign) int a;  7.@optional      // 可选实现  1.- (void)show1; //show1 是可实现也可不实现  2.@end  第四步:遵守协议;新建一个Person的类,在这个类.m文件里面来实现这个方法。在实现之前需要先表明你为什么实现这个方法。

4、那么我们就需要在Person这个类里面表明我是遵守这个协议。我们就需要在类的.h文件里面表明我是遵守这个协议的。1.#import   2.#import "MyProtocol.h"  3.@interface Person : NSObject   4.@property (nonatomic,assign) int a;  5.@end  这里我们要做两件事,第一是包好协议这个头文件,第二就是@interfacePerson:NSObject。接下来就是协议的实现

5、了。在Person.m这个文件中我们简单的实现一下:1.#import "Person.h"  2.@implementation Person  3.- (void)aDayCodeOneHour{  4.  NSLog(@"我的协议内容是“尚学堂最好的IOS培训机构”");  5.}  6.- (void)show{  7. NSLog(@"这是一个协议的例子。");  8.}  9.@end  第五步:主函数中演示1.#import   2.#import "Person.h"  3.int main(int 

6、argc, const charchar * argv[]) {  4.       @autoreleasepool {  5.     Person * ps = [[Person alloc] init];  6.        [ps aDayCodeOneHour]; //默认的也是必须要实现的  7.        [ps show]; //调用@required 修饰的一个方法  8.        ps.a = 10; //给a赋值  9.        NSLog(@"%d",ps.a); //取a的值打印出来  10.     id

7、ocol>obj = ps; //使用di的方法表明obj就是一个对象ps  11.        [obj show];//obj 也调用show 这个方法  12.       }  13.    return 0;  14.}  我们在协议MyProtocol里面还有几句是没有说明的:@required  //缺省属性,必须要实现-(void)show; //show 是必须要实现@property (nonatomic,assign)int a;@optional      // 可选实现-(void)show1; //show1 是可实现也可不实现 l

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。