苹果为什么说“操作”是抽象类?

时间:2019-07-15 20:51:18

标签: nsoperation foundation

如果swift没有抽象类,那么苹果为什么说Operation是抽象类?

根据基础文档,操作为:

  

一个抽象类,代表与单个任务相关的代码和数据。

1 个答案:

答案 0 :(得分:1)

也来自同一文档:

  

由于NSOperation类是一个抽象类,您可以   不直接使用它,而是子类或使用其中之一   系统定义的子类(NSInvocationOperation或NSBlockOperation)   执行实际任务。尽管很抽象,但基础   NSOperation的实现确实包含了以下重要逻辑:   协调任务的安全执行。这个的存在   内置的逻辑使您可以专注于实际的实现   您的任务,而不是确保其正常工作所需的粘合代码   与其他系统对象正确连接。

NSOperation有其对应的副本,例如NSBlockOperation

  

NSBlockOperation类是NSOperation的一个具体子类,   管理一个或多个块的并发执行。您可以使用   该对象无需创建即可立即执行多个块   每个操作对象都分开。当执行多个   块,仅当所有   块已执行完毕。

     

添加到块操作的块以默认优先级调度   到适当的工作队列。块本身不应该   关于执行配置的任何假设   环境。

尽管Objective-C并未像其他编程语言(例如Java)那样正式地提供抽象类,但可以实现它们,而Apple在其SDK的许多元素中都可以实现。