blocks

typedef void (^DelayGettingStringBlock)(NSString *str);
 
- (void)delayGettingString:(DelayGettingStringBlock)completionBlock
{
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 1.0f * NSEC_PER_SEC);
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void) {
        completionBlock(@"DelayGettingStringBlock");
    });
}
 
- (void)delayGettingStringWithString:(NSString *)str
                   completionHandler:(DelayGettingStringBlock)completionBlock
{
    NSString *delayString = [NSString stringWithFormat:@"%@%@", str, str];
    typeof(delayString) __weak wdelayString = delayString;
 
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 1.0f * NSEC_PER_SEC);
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void) {
        completionBlock(wdelayString);
    });
}
 
- (void)delayGettingStringWithString:(NSString *)str
                   completionHandler:(DelayGettingStringBlock)completionBlock01
                   completionHandler:(DelayGettingStringBlock)completionBlock02
{
    NSString *delayString01 = [NSString stringWithFormat:@"%@%@", str, str];
    typeof(delayString01) __weak wdelayString01 = delayString01;
    dispatch_time_t popTime01 = dispatch_time(DISPATCH_TIME_NOW, 1.0f * NSEC_PER_SEC);
    dispatch_after(popTime01, dispatch_get_main_queue(), ^(void) {
        completionBlock01(wdelayString01);
    });
 
    NSString *delayString02 = [NSString stringWithFormat:@"%@%@%@", str, str, str];
    typeof(delayString02) __weak wdelayString02 = delayString02;
    dispatch_time_t popTime02 = dispatch_time(DISPATCH_TIME_NOW, 2.0f * NSEC_PER_SEC);
    dispatch_after(popTime02, dispatch_get_main_queue(), ^(void) {
        completionBlock02(wdelayString02);
    });
}
 
- (IBAction)didTouchButton:(UIButton *)sender
{
    [self delayGettingStringWithString:@"abc"
    completionHandler:^(NSString *str)
    {
        NSLog(@"%@", str);
 
    }
    completionHandler:^(NSString *str)
    {
        NSLog(@"%@", str);
    }];
 
    [self delayGettingString:^(NSString *str) {
        NSLog(@"%@", str);
    }];
 
    [self delayGettingStringWithString:@"abc"
                     completionHandler:^(NSString *str) {
        NSLog(@"%@", str);
    }];
}
最終更新:2018年02月02日 17:14