block的使用(四)
block的使用(四)
我爱觉觉 发表于2年前
block的使用(四)
  • 发表于 2年前
  • 阅读 5
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

摘要: block作为函数的参数使用,方法的参数,方法的返回值使用

//  Person.h


#import <Foundation/Foundation.h>


typedef void(^blockType)();


@interface Person : NSObject

// 定义一个参数是block的方法

//- (void)test:(blockType) myblock;

- (void)test:(void(^)()) myblock;

- (blockType) test2;


@end


//

//  Person.m


#import "Person.h"


@implementation Person


- (void)test:(blockType)myblock {

    myblock();

}


- (blockType)test2 {

    return  ^{

        NSLog(@"test2");

    };

}

@end


//

//  main.m


#import <Foundation/Foundation.h>

#import "Person.h"

// block作为方法的参数,传递block参数

//void test(void(^myblock)()){

//    // 调用block

//    myblock();

//}


// block 作为方法的返回值

//void (^)() test() { // 报错

//    

//}


typedef void(^blockType)();


blockType test() {

    blockType block = ^ {

        NSLog(@"test -- block");

    };

    return block;

}



int main(int argc, const char * argv[]) {

    @autoreleasepool {

        

        void (^block1)() = ^{

            NSLog(@"*******");

            NSLog(@"*******");

        };

        

        block1();

        

        //test(block1); // 打印出两行*

        

        blockType t1 = test();

        t1(); // test -- block

        

        Person *p = [[Person alloc]init];

        // block类型作为方法的参数使用

        [p test:^{

            NSLog(@"inblock");

        }];

        

        // 返回值是block类型的方法

        blockType b1 = [p test2];

        b1();

    }

    return 0;

}


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 49
码字总数 10640
×
我爱觉觉
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: