iOS多线程应用开发中使用NSOperation类的基本方法

2020-01-14 16:31:27王旭

 (1)设置NSOperation在queue中的优先级,可以改变操作的执⾏优先级

复制代码
- (NSOperationQueuePriority)queuePriority;
- (void)setQueuePriority:(NSOperationQueuePriority)p;
 (2)优先级的取值
复制代码
NSOperationQueuePriorityVeryLow = -8L,

 

NSOperationQueuePriorityLow = -4L,

NSOperationQueuePriorityNormal = 0,

NSOperationQueuePriorityHigh = 4,

NSOperationQueuePriorityVeryHigh = 8 


说明:优先级高的任务,调用的几率会更大。

 

六、操作依赖
(1)NSOperation之间可以设置依赖来保证执行顺序,⽐如一定要让操作A执行完后,才能执行操作B,可以像下面这么写

复制代码
[operationB addDependency:operationA]; // 操作B依赖于操作
(2)可以在不同queue的NSOperation之间创建依赖关系 

 

iOS多线程应用开发中使用NSOperation类的基本方法

注意:不能循环依赖(不能A依赖于B,B又依赖于A)。

(3)代码示例

复制代码
#import "YYViewController.h"

 

@interface YYViewController ()

@end


复制代码
@implementation YYViewController

 

- (void)viewDidLoad
{
    [super viewDidLoad];

    //创建NSInvocationOperation对象,封装操作
    NSInvocationOperation *operation1=[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(test1) object:nil];
    NSInvocationOperation *operation2=[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(test2) object:nil];
    //创建对象,封装操作