码迷,mamicode.com
首页 > 其他好文 > 详细

OC--protocol协议

时间:2015-09-02 18:45:01      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

// MyProtocol.h
#import <Foundation/Foundation.h>
@protocol MyProtocol <NSObject>
@optional
- (void)print:(int)value;
@required
- (int)printValue:(int)value1 andValue:(int)value2;
@end


// MyTest.h
#import <Foundation/Foundation.h>
#import "MyProtocol.h"
@interface MyTest : NSObject <MyProtocol>
- (void)showInfo;
@end


// MyTest.m
#import "MyTest.h"
@implementation MyTest
- (void)showInfo{
    NSLog(@"showInfo...");
}
- (int)printValue:(int)value1 andValue:(int)value2{
    NSLog(@"value1 = %d, value2 = %d", value1, value2);
    return 0;
}
// 下面这个方法可以实现,也可以不实现
- (void)pirnt:(int)value{
    NSLog(@"value = %d", value);
}
@end


// mian.m
#import <Foundation/Foundation.h>
#import "MyTest.h"
#import "MyProtocol.h"
int main(int argc, const char *argv[]){
    // 普通类的调用方法
    MyTest *myTest = [[MyTest alloc] init];
    [myTest showInfo];
    SEL sel = @selector(print:);
    // 确定这个print方法是否实现
    if([myTest respondsToSelector:sel]){
        [myTest print:20];
    }
    [myTest printValue:20 andValue:10];
    // 使用协议的方式来调用
    id<MyProtocol> myProtocol = [[MyTest alloc] init];
    if([myProtocol respondsToSelector:@selector(print:)]){
        [myProtocol print:10];
    }
    return 0;
}

OC--protocol协议

标签:

原文地址:http://www.cnblogs.com/lianfu/p/4779158.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!