NSOperation及子类、NSOperationQueue属性及方法
来源:互联网 发布:淘宝页头尺寸 编辑:程序博客网 时间:2024/05/14 17:36
#define NSOperationQualityOfService NSQualityOfService#define NSOperationQualityOfServiceUserInteractive NSQualityOfServiceUserInteractive#define NSOperationQualityOfServiceUserInitiated NSQualityOfServiceUserInitiated#define NSOperationQualityOfServiceUtility NSQualityOfServiceUtility#define NSOperationQualityOfServiceBackground NSQualityOfServiceBackground***NSOperation操作的属性及方法-NS_CLASS_AVAILABLE(10_5, 2_0)***@interface NSOperation : NSObject- (void)start;//开始执行操作- (void)main;//实现要执行的操作,自定义NSOperation时,要被重写@property (readonly, getter=isCancelled) BOOL cancelled;//是否取消该操作- (void)cancel;//取消操作@property (readonly, getter=isExecuting) BOOL executing;//是否正在执行@property (readonly, getter=isFinished) BOOL finished;//是否执行完毕@property (readonly, getter=isConcurrent) BOOL concurrent; // To be deprecated; use and override 'asynchronous' below//是否是并行执行的@property (readonly, getter=isAsynchronous) BOOL asynchronous NS_AVAILABLE(10_8, 7_0);@property (readonly, getter=isReady) BOOL ready;//是否就绪- (void)addDependency:(NSOperation *)op;//添加依赖- (void)removeDependency:(NSOperation *)op;//移除依赖@property (readonly, copy) NSArray<NSOperation *> *dependencies;//查看所有依赖typedef NS_ENUM(NSInteger, NSOperationQueuePriority) { NSOperationQueuePriorityVeryLow = -8L, NSOperationQueuePriorityLow = -4L, NSOperationQueuePriorityNormal = 0, NSOperationQueuePriorityHigh = 4, NSOperationQueuePriorityVeryHigh = 8};//NSOperationQueue的优先级@property NSOperationQueuePriority queuePriority;//获取队列的优先级@property (nullable, copy) void (^completionBlock)(void) NS_AVAILABLE(10_6, 4_0);- (void)waitUntilFinished//来阻塞当前线程直到这个 operation 执行完成@property double threadPriority NS_DEPRECATED(10_6, 10_10, 4_0, 8_0);@property NSQualityOfService qualityOfService NS_AVAILABLE(10_10, 8_0);@property (nullable, copy) NSString *name NS_AVAILABLE(10_10, 8_0);***NSBlockOperation的相关属性及方法---NS_CLASS_AVAILABLE(10_6, 4_0)***@interface NSBlockOperation : NSOperation//使用blockOperationWithBlock:初始化+ (instancetype)blockOperationWithBlock:(void (^)(void))block;//使用addExcutionBlock追加操作块(void)addExecutionBlock:(void (^)(void))block;//查看NSBlockOperation上的操作块@property (readonly, copy) NSArray<void (^)(void)> *executionBlocks;***NSInvocationOperation-NS_CLASS_AVAILABLE(10_5, 2_0)NS_SWIFT_UNAVAILABLE***@interface NSInvocationOperation : NSOperation//初始化- (nullable instancetype)initWithTarget:(id)target selector:(SEL)sel object:(nullable id)arg;- (instancetype)initWithInvocation:(NSInvocation *)inv NS_DESIGNATED_INITIALIZER;@property (readonly, retain) NSInvocation *invocation;//可以获取invokOperation的selector的结果@property (nullable, readonly, retain) id result;static const NSInteger NSOperationQueueDefaultMaxConcurrentOperationCount = -1;***NSOperationQueue -NS_CLASS_AVAILABLE(10_5, 2_0)***@interface NSOperationQueue : NSObject//添加操作- (void)addOperation:(NSOperation *)op;- (void)addOperations:(NSArray<NSOperation *> *)ops waitUntilFinished:(BOOL)wait NS_AVAILABLE(10_6, 4_0);- (void)addOperationWithBlock:(void (^)(void))block NS_AVAILABLE(10_6, 4_0);//查看OperationQueue上的操作数以及所有操作@property (readonly, copy) NSArray<__kindof NSOperation *> *operations;@property (readonly) NSUInteger operationCount NS_AVAILABLE(10_6, 4_0);@property NSInteger maxConcurrentOperationCount;//设置队列上的最大并发数@property (getter=isSuspended) BOOL suspended;//是否挂起该队列@property (nullable, copy) NSString *name NS_AVAILABLE(10_6, 4_0);//队列的名字@property NSQualityOfService qualityOfService NS_AVAILABLE(10_10, 8_0);@property (nullable, assign /* actually retain */) dispatch_queue_t underlyingQueue- (void)cancelAllOperations;//取消所有的操作- (void)waitUntilAllOperationsAreFinished;//等待 operation queue 中的所有 operation 执行完成@property (class, readonly, strong, nullable) NSOperationQueue *currentQueue@property (class, readonly, strong) NSOperationQueue *mainQueue NS_AVAILABLE(10_6, 4_0); //注意:再追加操作块时必须在巧用start前,即[blOp start];否则报错blocks cannot be added after the operation has started executing or finished'
0 0
- NSOperation及子类、NSOperationQueue属性及方法
- NSOPeration NSOperationQueue
- NSOperation NSOperationQueue
- 多线程创建 方法二:NSOperation & NSOperationQueue
- java this 子类调父类,父类再调用子类已覆盖的方法及属性(又一次理解)
- java中子类,父类的方法调用及属性值
- Java中子类继承了父类的私有属性及方法吗?
- 线程操作 NSOperation以及他的子类与 NSOperationQueue的搭配使用
- Cocoa:NSOperation和NSOperationQueue
- Cocoa:NSOperation和NSOperationQueue
- NSOperation和NSOperationQueue
- Cocoa: NSOperation和NSOperationQueue
- Cocoa:NSOperation和NSOperationQueue
- NSOperation和NSOperationQueue
- NSOperation and NSOperationQueue教程
- NSOperation和NSOperationQueue
- Cocoa:NSOperation和NSOperationQueue
- NSOperation和NSOperationQueue
- K叉哈夫曼树
- 蓝桥 快速排序
- Mysql解压版安装注意事项
- Java中使用Calendar类来解决日期的算法题
- POJ2186Popular Cows(强连通分量)
- NSOperation及子类、NSOperationQueue属性及方法
- CENTOS: 增加SWAP的大小
- bzoj2253: [2010 Beijing wc]纸箱堆叠
- Linux内核之进程上下文和中断上下文
- Can't connect to MySQL server on 'localhost' (10061)
- java 抽象和封装
- 城归族的“驿站”-----百城顾问
- 51nod 1737【树的重心】
- 蓝桥 抽签