OC1_协议语句
// // Programmer.h // OC1_协议语句 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import <Foundation/Foundation.h> #import "Coder.h"//遵守协议 必须包含协议所在的头文件 @interface Programmer : Coder <Coder> @end // // Programmer.m // OC1_协议语句 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import "Programmer.h" @implementation Programmer - (void)writeCode { NSLog(@"作为一个码农, 我努力写代码"); } - (void)debugCode { NSLog(@"这个程序有点问题,我再调试一下"); } - (void)report { NSLog(@"老板这个程序调试OK, 可以上线了"); } @end
// // Coder.h // OC1_协议语句 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import <Foundation/Foundation.h> @protocol Coder <NSObject> - (void)writeCode; - (void)debugCode; - (void)report; @end @interface Coder : NSObject @property (copy,nonatomic)NSString *name; @end // // Coder.m // OC1_协议语句 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import "Coder.h" @implementation Coder @end
// // main.m // OC1_协议语句 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import <Foundation/Foundation.h> #import "Programmer.h" //协议:约定双方相互遵守的规范 //生活中,劳务合同, 就业协议 //计算机中: http:// ftp:// smb:// tcp udp uart usb spi i2c //OC中的协议: //一组方法的列表 //1.定制协议 //在Foundation中所有的协议直接或者间接的遵守NSObject协议 //@protocol Coder <NSObject> // //- (void)writeCode; //- (void)debugCode; //- (void)report; // //@end ////2.遵守协议 协议名放在<>中, 遵守多个协议 ,协议之间用逗号隔开 //@interface Programmer : NSObject <Coder,NSCopying> // //@end //3.实现协议 //由遵守协议的类实现,协议中的方法默认是必须实现 //4.使用协议 int main(int argc, const char * argv[]) { @autoreleasepool { Programmer *xiaoHua = [[Programmer alloc] init]; xiaoHua.name = @"小华"; [xiaoHua writeCode]; [xiaoHua debugCode]; [xiaoHua report]; } return 0; }