渐进式编程课
Objective-C 目录
第 17 课2026.09.23

让其他课程展示对象也能承诺提供相同的摘要文字。

第 17 课:用协议声明摘要读取契约

  • 日期:2026-09-23
  • 课程序号:第 17 课
  • 知识点:@protocol 声明只读属性

用途或适用场景

让其他课程展示对象也能承诺提供相同的摘要文字。

核心概念

协议只声明对象应提供的成员,不保存数据或生成具体实现;本课把已有 displaySummary 属性写成要求。

最小代码或操作示例

objective-c
#import <Foundation/Foundation.h>

@protocol LessonSummarizing <NSObject>
@property (nonatomic, readonly, copy) NSString *displaySummary;
@end

3~5 分钟练习

在协议中再声明一个返回 NSString * 的 summary 方法。

参考答案

在 @end 前写 - (NSString *)summary;。这只是方法契约,尚未修改 Lesson 实现。

与上一课的联系

沿用第 16 课通过 displaySummary 读取的摘要;本课只新增 LessonSummarizing 协议声明;完成后下一课可让现有 Lesson 显式采纳协议。

时效校验

时效校验:2026-09-24(Apple Objective-C 官方 Working with Protocols 与 Encapsulating Data;@protocol 和只读属性声明未见废弃标记)。

官方参考