A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yushimin763 中级黑马   /  2015-8-14 18:47  /  622 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

协议的定义:
@protocol 协议名称
//方法声明列表
@end;
协议的使用:
@protocol 类名<协议名称1,协议名称2...>
@end;
在默认情况下,只要是协议里面声明过的方法,遵守此协议的类就必须要实现协议里的声明的所有方法,否则系统就会发出警告。一个类可以遵守多个协议,而在oc中类的继承只是单一继承。
oc提供两个关键字@required (后面的方法在遵守协议的类里面必须实现)和 @optional (可以实现也可以不实现)没有关键字时候,系统默认是@required
例子:
#import
@protocol personProtocol //定义一个协议
@required
- (void)eat;//必须实现的方法
@optional
- (void)run;//选择实现的方法
@end

@interface Person:NSObject
@end
@implementation Person
- (void)eat{
NSLog(@"人在吃饭");
}
@end

int main(int argc, const char *argv[] ){
   @autoreleasepool{
    Person * p = [Person new];
    [p eat];//调用协议中必须要实现的方法
}
return 0;
}


程序运行结果为:人在吃饭

1 个回复

倒序浏览
经典入门程序
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马