iOS的协议@protocol和接口@interface

2019-06-25  本文已影响0人  小黑Unity_齐xc

@protocol 类似于java中的interface

1、声明方法,不实现方法;
2、定义属性@property,仅是getter setter形式的声明

@protocol 语法:

@protocol SportProtocol <NSObject>
- (void)playFootball;
- (void)playBasketball;
- (void)run;
@end

@protocol关键词

@required:这个方法必须实现,默认就是required(若不实现,编译会报错)
@optional:这个方法不一定要实现

示例:
@protocol SportProtocol <NSObject>
@required
- (void)playFootball;
- (void)playBasketball;

@optional
- (void)run;
- (void)readSportType;
@end

@interface类似于java的类声明

1、使用协议的类,必须实现协议中的方法(与java的实现类似)
2、一个类可以遵循1个或多个协议(与java的实现类似)

@interface语法:

#import <Foundation/Foundation.h>
#import "SportProtocol.h"
@interface Person : NSObject<SportProtocol>

@end

@interface集成+协议

#import <Foundation/Foundation.h>
#import "SportProtocol.h"
@interface Person : NSObject<SportProtocol>
@end
----------------------
#import "Person.h"
@interface Student : Person
@end
----------------------

参考:
https://www.jianshu.com/p/2c67eebfaa3d

上一篇下一篇

猜你喜欢

热点阅读