如果swift没有抽象类,那么苹果为什么说Operation
是抽象类?
根据基础文档,操作为:
一个抽象类,代表与单个任务相关的代码和数据。
答案 0 :(得分:1)
也来自同一文档:
由于NSOperation类是一个抽象类,您可以 不直接使用它,而是子类或使用其中之一 系统定义的子类(NSInvocationOperation或NSBlockOperation) 执行实际任务。尽管很抽象,但基础 NSOperation的实现确实包含了以下重要逻辑: 协调任务的安全执行。这个的存在 内置的逻辑使您可以专注于实际的实现 您的任务,而不是确保其正常工作所需的粘合代码 与其他系统对象正确连接。
NSOperation有其对应的副本,例如NSBlockOperation
NSBlockOperation类是NSOperation的一个具体子类, 管理一个或多个块的并发执行。您可以使用 该对象无需创建即可立即执行多个块 每个操作对象都分开。当执行多个 块,仅当所有 块已执行完毕。
添加到块操作的块以默认优先级调度 到适当的工作队列。块本身不应该 关于执行配置的任何假设 环境。
尽管Objective-C并未像其他编程语言(例如Java)那样正式地提供抽象类,但可以实现它们,而Apple在其SDK的许多元素中都可以实现。