渐进式编程课
Objective-C 目录
第 21 课2026.09.30

把不同实现类的摘要对象放入同一个有类型约束的数组。

第 21 课:用协议类型数组统一保存对象

  • 日期:2026-09-30
  • 课程序号:第 21 课
  • 知识点:NSArray<id<LessonSummary>> *

用途或适用场景

把不同实现类的摘要对象放入同一个有类型约束的数组。

核心概念

轻量泛型约束数组元素必须采纳协议,读取时仍通过协议属性。

最小代码或操作示例

objective-c
NSArray<id<LessonSummary>> *items = @[lesson, chapter];
for (id<LessonSummary> item in items) {
    NSLog(@"%@", item.summary);
}

3~5 分钟练习

再添加一个采纳协议的对象并遍历。

参考答案

新对象可加入数组,循环继续只依赖 summary 契约。

与上一课的联系

第 20 课让函数统一接收两个协议采纳者;本课只新增协议类型数组;下一课可把数组传给统一展示函数。

时效校验

时效校验:2026-09-30(Objective-C 当前语言文档;协议限定类型与轻量泛型未见废弃标记。)

官方参考