YSSimpleOperation 1.0.0

YSSimpleOperation 1.0.0

yht维护。



  • Aiur

Build Status CocoaPods Compatible

YSSimpleOperation

为控制任务执行顺序提供简单操作的简单操作...

简介

为OperationQueue管理的操作简单设计。控制任务的执行方式类似'dispatch_group_t',并简单地顺序执行异步任务。

用法

  • 依赖任务
NSMutableArray *list = [NSMutableArray array];
    for (NSString *str in @[@"a", @"b"]) {
        NSOperation *operation = [self createOperationWithSymbol:str queueType:YSQueue_Concurrent depentOperationList:nil];
        [list addObject:operation];
    }
    
    for (NSString *str in @[@"A"]) {
        [self createOperationWithSymbol:str queueType:YSQueue_Serial depentOperationList:[list copy]];
    }
    
    
    - (NSOperation *)createOperationWithSymbol:(NSString *)symbol queueType:(YSQueueType)queuType depentOperationList:(NSArray *)list {
    
    NSOperation *operation = [self.manager addOperationInQueueType:queuType inQuality:NSQualityOfServiceDefault dependencyOperations:list actionBlock:^(YSStopActionBlock stopAction) {
        /*
			simulate task
         */
        dispatch_async(dispatch_get_global_queue(0, 0), ^{
            NSLog(@"start loading -> %@...", symbol);
            sleep(5);
            NSLog(@"end loading -> %@...", symbol);
            stopAction(false);
        });
    } cancelBlock:^{
        NSLog(@"%@ cancel...", symbol);
    } finshBlock:^{
        NSLog(@"%@ finsh...", symbol);
    }];
    return operation;
}

  • 串行任务
for (NSString *str in @[@"a", @"b"]) {
        [self createOperationWithSymbol:str queueType:YSQueue_Serial depentOperationList:nil];
    }
 // like above
 ...   

安装

  • cocopods

在Podfile中添加它

pod 'YSSimpleOperation', '~>1.0.0'

然后运行

pod install
  • sourceCode

在目录 YSSimpleOperation

YSActionOperation.h
YSActionOperation.m
YSOperationManager.h
YSOperationManager.m