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;
}

 

posted @ 2015-06-24 18:41  sirzhang  阅读(204)  评论(0编辑  收藏  举报
AmazingCounters.com