欢迎来到天天文库
浏览记录
ID:62033457
大小:89.00 KB
页数:6页
时间:2021-04-15
《iOS培训之Objective-C协议和代理.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、北京尚学堂提供在现实生活中我们存在各种各样的协议,但是都有一个共同点,就是拟定的协议,就要遵守,不遵守就是违约。在OC中也有协议这一个概念而且和我们现实生活中的协议的特点是类似的。有时我们自己想做什么事,但是现在没这个能力自己去做,亲力亲为,我们就需要找代理来帮我们做了。那么在OC中也有代理这个概念。下面就简单的说说OC中的协议和代理。一、协议在《【iOS开发之Objective-C】对象的交互》中实现了一种对象的交互的方式。在OC中还有其他方式,比如说协议,在OC中用协议来规范接口,是实现对象之间的交互的一种机制。类似
2、于JAVA中的接口。还可以模拟多继承。协议的实现第一步:使用Xcode新建一个工程;怎么新建一个工程第二步:新建一个OC文件;在这个工程里面 New File--———> Objective—CFile -——--〉填写文件名–>在FileType 里面选择“Protocol”最后点击Next.第三步:“拟定"协议;假设我和某人签订和一个协议,协议里面需要我执行一个动作:每天练习一小时OC编程;那么这条协议内容就是: — (void)aDayCodeOneHour;这只是一个协议条款,协议自己本身事没有能力遵守
3、协议或是实现协议.1.#import 2.@protocol MyProtocol 〈NSObject〉 3.— (void)aDayCodeOneHour; 4.@required //缺省属性,必须要实现 5.- (void)show; //show 是必须要实现 6.@property (nonatomic,assign) int a; 7.@optional // 可选实现 1.- (void)show1; //show1 是可实现也
4、可不实现 2.@end 第四步:遵守协议;新建一个Person的类,在这个类。m文件里面来实现这个方法。在实现之前需要先表明你为什么实现这个方法。那么我们就需要在Person这个类里面表明我是遵守这个协议。我们就需要在类的。h文件里面表明我是遵守这个协议的。1.#import 2.#import "MyProtocol.h" 3.@interface Person : NSObject <MyProtocol〉 4.@property (nonatomic,a
5、ssign) int a; 5.@end 这里我们要做两件事,第一是包好协议这个头文件,第二就是@interfacePerson:NSObject<MyProtocol>.接下来就是协议的实现了。在Person.m这个文件中我们简单的实现一下:1.#import "Person。h" 2.@implementation Person 3.- (void)aDayCodeOneHour{ 4. NSLog(@”我的协议内容是“尚学堂最好的IOS培训机构””); 5.} 6.— (void)show{ 7.
6、 NSLog(@”这是一个协议的例子。”); 8.} 9.@end 第五步:主函数中演示1.#import 2.#import "Person。h" 3.int main(int argc, const charchar * argv[]) { 4. @autoreleasepool { 5. Person * ps = [[Person alloc] init]; 6. [ps aDayCodeOneHour]; //
7、默认的也是必须要实现的 7. [ps show]; //调用@required 修饰的一个方法 8. ps.a = 10; //给a赋值 9. NSLog(@"%d",ps.a); //取a的值打印出来 10. id8、们在协议MyProtocol里面还有几句是没有说明的:@required //缺省属性,必须要实现— (void)show; //show 是必须要实现@property (nonatomic,assign)int a;@optional // 可选实现—(void)show1; //show1 是可实现
8、们在协议MyProtocol里面还有几句是没有说明的:@required //缺省属性,必须要实现— (void)show; //show 是必须要实现@property (nonatomic,assign)int a;@optional // 可选实现—(void)show1; //show1 是可实现
此文档下载收益归作者所有