码无界IOS And Android

iOS多线程讲解二之NSOperation

2016-04-06  本文已影响40人  kevinLY

本文主要参考Apple官方文档,英文好的可以直接看官方文档

NSOperation.png

NSOperation类是一个你可以用来封装代码和单任务相关的数据的抽象类。因为他是抽象的,所以你不能直接使用这个类,但是你可以子类化这个类,或者使用系统定义的子类(NSInvocationOperationNSBlockOperation)来执行实际的任务。尽管是抽象的,NSOperation的基本实现包含重要的逻辑来确保你的任务安全的执行。 这种内嵌的逻辑的存在,能够让你专注于你的任务的实现,而不是确保它与其他系统对象正常工作粘合代码。
一个NSOperation对象是一个单次对象,也就是说,它只能执行一次任务,并且不能再次执行。典型的一种情况是把你要执行的操作添加到一个operation queue (一个NSOperationQueue类的实例). 操作队列直接执行它的操作,运行他们辅助线程或间接使用thelibdispatch库(又称中央调度) 。有关队列如何执行操作的更多信息,请参阅NSOperationQueue Class Reference类参考。
如果你不希望使用操作队列,可以直接在代码中调用start方法执行自己的操作。执行手动操作会加重依赖你的代码,因为启动一个不处于就绪状态的操作会触发异常。而ready属性会报告其就绪状态。

    //是否取消
    isCancelled - read-only
    //是否异步
    isAsynchronous - read-only
    //是否正在执行
    isExecuting - read-only
   //是否执行完成
    isFinished - read-only
    //是否就绪
    isReady - read-only
    //依赖关系
    dependencies - read-only
    //队列中的优先级
    queuePriority - readable and writable
    //完成后执行的block
    completionBlock - readable and writable
上一篇 下一篇

猜你喜欢

热点阅读