//// Programmer.h// OC1_协议语句//// Created by zhangxueming on 15/6/24.// Copyright (c) 2015年 zhangxueming. All rights reserved.//#import#import "Coder.h"//遵守协议 必须包含协议所在的头文件@interface Programmer : 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@protocol Coder - (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#import "Programmer.h"//协议:约定双方相互遵守的规范//生活中,劳务合同, 就业协议//计算机中: http:// ftp:// smb:// tcp udp uart usb spi i2c//OC中的协议://一组方法的列表//1.定制协议//在Foundation中所有的协议直接或者间接的遵守NSObject协议//@protocol Coder ////- (void)writeCode;//- (void)debugCode;//- (void)report;////@end////2.遵守协议 协议名放在<>中, 遵守多个协议 ,协议之间用逗号隔开//@interface Programmer : NSObject ////@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;}