MST
星途 面试题库

面试题:Objective-C协议(Protocol)的基础使用

请简述Objective-C协议(Protocol)的定义方式,并且说明如何在类中遵循一个协议以及实现协议中的方法。假设我们有一个`Flyable`协议,包含`fly`方法,创建一个`Bird`类遵循该协议并实现`fly`方法。
34.3万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试
  1. 协议定义方式: 在Objective - C中,使用@protocol关键字定义协议。示例如下:
    @protocol Flyable <NSObject>
    - (void)fly;
    @end
    
    这里@protocol Flyable <NSObject>表示定义一个名为Flyable的协议,并且该协议继承自NSObject协议(NSObject协议提供了一些基础方法,如description等,大多数自定义协议都会继承它)。- (void)fly;定义了协议中的fly方法。
  2. 类遵循协议及实现方法: 在类的定义中,通过在类名后尖括号内列出协议名来表示该类遵循此协议。然后在类的实现部分实现协议中的方法。
    @interface Bird : NSObject <Flyable>
    @end
    
    @implementation Bird
    - (void)fly {
        NSLog(@"The bird is flying.");
    }
    @end
    
    这里@interface Bird : NSObject <Flyable>表示Bird类继承自NSObject类并且遵循Flyable协议。在@implementation Bird部分,实现了Flyable协议中的fly方法,打印出“The bird is flying.” 。