//
// 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;
}
转载于:https://www.cnblogs.com/0515offer/p/4598402.html