zoukankan      html  css  js  c++  java
  • iOS block示例

    //
    //  block.h
    //  Block
    //
    //  Created by tqh on 15/4/12.
    //  Copyright (c) 2015年 tqh. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    typedef void(^block1) (id obj);
    
    typedef void(^block2)();
    
    typedef NSInteger(^block3)();
    
    @interface block : NSObject
    
    //带参数
    + (void)initBlock1:(void(^)(id obj))block sum:(NSInteger)sum;
    
    //typdef
    + (void)initBlock11:(block1)block sum:(NSInteger)sum;
    
    //不带参
    + (void)initBlick2:(void(^)())block sum:(NSInteger)sum;
    
    //typedef
    + (void)initBlock22:(block2)block sum:(NSInteger)sum;
    
    + (void)blockTest:(block2)block;
    
    + (void)initBlock3:(block3)block sum:(NSInteger)sum;
    
    @end
    //
    //  block.m
    //  Block
    //
    //  Created by tqh on 15/4/12.
    //  Copyright (c) 2015年 tqh. All rights reserved.
    //
    
    #import "block.h"
    
    @implementation block
    
    
    + (void)initBlock1:(void (^)(id))block sum:(NSInteger)sum{
        NSString *str = @"返回字符串";
        if (sum > 10) {
          block(str);
        }
    }
    
    + (void)initBlock11:(block1)block sum:(NSInteger)sum{
        NSString *str = @"返回字符串";
        if (sum > 10) {
            block(str);
        }
    }
    
    + (void)initBlick2:(void (^)())block sum:(NSInteger)sum{
     
        if (sum > 10) {
            block();
        }
        
    }
    
    + (void)initBlock22:(block2)block sum:(NSInteger)sum{
      
        if (sum > 10) {
            block();
        }
        
    }
    
    +(void)blockTest:(block2)block
    {
        block();
    }
    
    +(void)initBlock3:(block3)block sum:(NSInteger)sum{
        
        NSInteger index = block();
        NSLog(@"%ld",index);
        
    }
    
    @end
    //
    //  main.m
    //  Block
    //
    //  Created by tqh on 15/4/12.
    //  Copyright (c) 2015年 tqh. All rights reserved.
    //
    
    /**
     *  block回调
     *
     *  @param argc
     *  @param argv
     *
     *  @return
     */
    
    #import <Foundation/Foundation.h>
    #import "block.h"
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            
            [block initBlock1:^(id obj) {
                NSLog(@"%@",obj);
            } sum:9];
            
            [block initBlock11:^(id obj) {
                NSLog(@"%@",obj);
            } sum:11];
            
            [block initBlick2:^{
                NSLog(@"block2");
            } sum:9];
            
            [block initBlick2:^{
                NSLog(@"block22");
            } sum:11];
            
            
            [block blockTest:^{
                NSLog(@"100");
            }];
     
            [block initBlock3:^NSInteger{
                return 10000000;
            } sum:10];
        }
        return 0;
    }
     
  • 相关阅读:
    2014-2-24 日记
    The C++ Programming Language
    穷举法练习题
    JAVA的语法基础3
    JAVA的语法基础 练习题
    JAVA的语法基础2
    JAVA的语法基础1
    代码结构和标识符
    Eclipse使用
    Java开发环境
  • 原文地址:https://www.cnblogs.com/hxwj/p/4464492.html
Copyright © 2011-2022 走看看