第 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;
@end3~5 分钟练习
在协议中再声明一个返回 NSString * 的 summary 方法。
参考答案
在 @end 前写 - (NSString *)summary;。这只是方法契约,尚未修改 Lesson 实现。
与上一课的联系
沿用第 16 课通过 displaySummary 读取的摘要;本课只新增 LessonSummarizing 协议声明;完成后下一课可让现有 Lesson 显式采纳协议。
时效校验
时效校验:2026-09-24(Apple Objective-C 官方 Working with Protocols 与 Encapsulating Data;@protocol 和只读属性声明未见废弃标记)。