NSOperation

  1. Executing the Operation
  2. Canceling Operations
  3. Getting the Operation Status
  4. Managing Dependencies
  5. Configuring the Execution Priority
  6. Waiting on an Operation Object

NSOperation是一个任务的抽象接口,我们主要使用它的子类。也可以使用自定义的Operation,继承NSOperation即可。

NSOperation的子类有如下几种:

  1. CKOperation:CloudKit库中的类,主要为执行cloud操作提供操作基类。
  2. NSBlockOperation:以block的方式添加任务。
  3. NSInvocationOperation:以target的方式添加任务,swift已废弃。
  4. UIActivityItemProvider:UIKit库中的类,主要用于UIActivityViewController处理数据时的协议。

Subclassing Notes

对于继承NSOperation,非并发的Operation,只需实现:

  • main

对于并发的Operation,需要实现如下几种方法:

  • start
  • asynchronous
  • executing
  • finished

1 Executing the Operation

/// 开始执行方法
public func start()

/// 执行的非并发操作
public func main()

/// 操作执行完毕的回调
@available(iOS 4.0, *)
public var completionBlock: (() -> Void)?

2 Canceling Operations

/// 取消任务
public func cancel()

3 Getting the Operation Status

/// 是否取消
public var cancelled: Bool { get }
/// 是否执行
public var executing: Bool { get }
/// 是否执行完成
public var finished: Bool { get }
/// 是否并发的
public var concurrent: Bool { get }
/// 是否异步操作执行其任务
@available(iOS 7.0, *)
public var asynchronous: Bool { get }
/// 任务能否执行
public var ready: Bool { get }
/// 任务名
@available(iOS 8.0, *)
public var name: String?

4 Managing Dependencies

/// 添加子任务
public func addDependency(op: NSOperation)
/// 去掉子任务
public func removeDependency(op: NSOperation)
/// 子任务
public var dependencies: [NSOperation] { get }

5 Configuring the Execution Priority

/// 任务优先级
public var queuePriority: NSOperationQueuePriority

/// 线程优先级
@available(iOS, introduced=4.0, deprecated=8.0)
public var threadPriority: Double

/// 资源级别
@available(iOS 8.0, *)
public var qualityOfService: NSQualityOfService

6 Waiting on an Operation Object

/// 阻塞当前线程的执行,直到完成其任务
@available(iOS 4.0, *)
public func waitUntilFinished()

 


Appendix

Sample Code

Swift

NSOperation Class Reference

Concurrency Programming Guide

Revision History

时间描述
2016-03-09博文完成

CSDN:http://blog.csdn.net/y550918116j

GitHub:https://github.com/927337973/Blog

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值