NSBlockOperation - 执行串行任务
方法一 采用 maxConcurrentOperationCount
NSOperationQueue *queue = [[NSOperationQueue alloc]init];
queue.maxConcurrentOperationCount = 1;
NSBlockOperation *operation1 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"--------登录----");
}];
NSBlockOperation *operation2 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"---------获取基本信息----");
}];
NSBlockOperation *operation3 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"---------获取当前班级信息----");
}];
[queue addOperations:@[operation1,operation2,operation3] waitUntilFinished:YES];
方法二 采用 addDependency
NSOperationQueue *queue = [[NSOperationQueue alloc]init];
NSBlockOperation *operation1 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"--------登录----");
}];
NSBlockOperation *operation2 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"---------获取基本信息----");
}];
NSBlockOperation *operation3 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"---------获取当前班级信息----");
}];
[operation2 addDependency:operation1];
[operation3 addDependency:operation2];
[queue addOperations:@[operation1,operation2,operation3] waitUntilFinished:YES];