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;

}

 

你可能感兴趣的:(协议)