美文网首页
OC:Block书写

OC:Block书写

作者: 春暖花已开 | 来源:发表于2018-12-23 13:02 被阅读8次
作为本地变量:

格式:

returnType (^blockName)(paramType param...) = ^returnType(paramType param...) {
    return ...
};

例如:

NSInteger (^getSum)(NSInteger a, NSInteger b) = ^NSInteger(NSInteger a, NSInteger b) {
        return a + b;
};
NSLog(@"%ld", getSum(1, 2));  //打印3

作为属性

格式:

@property (nonatomic, copy) returnType (^blockName)(paramType param); 

例如:

@property (nonatomic, copy) void (^blockName)(NSString *paramName);

作为方法参数

格式:

- (void)someMethodThatTakesABlock:(returnType (^)(paramType param))blockName;

例如:

- (void)doSomethingWithBlock:(void(^)(NSString *name))block {
    
}

用作typedef

格式:

typedef returnType (^TypeName)(paramType param);
TypeName blockName = ^returnType(parameters) {...};

例如:

typedef NSInteger (^GetSumWithDef)(NSInteger a, NSInteger b);
GetSumWithDef block = ^NSInteger(NSInteger a, NSInteger b) {
        return a + b;
};
NSLog(@"%ld", block(2, 2)); //打印4

相关文章

  • OC:Block书写

    作为本地变量: 格式: 例如: 作为属性 格式: 例如: 作为方法参数 格式: 例如: 用作typedef 格式:...

  • block概念

    block的实质: block实质是oc对闭包的对象实现,简单点来说 block就算是对象。 block的书写方式...

  • swift 调用 OC中的block

    OC中声明block; OC中实现block swift中实现

  • Swift 之闭包

    闭包 闭包类似于 OC 的 block,但是比 OC 的 block 应用面更广 在 OC 中 block 是匿名...

  • OC-简单粗暴理解Block的本质

    block简单粗暴的理解 OC的block底层就是个OC对象,包含isa指针,封装了函数的调用. OC的block...

  • iOS Block本质笔记

    OC中定义block block访问外部参数 OC转C++分析 block的变量捕获机制 为了保证block能够正...

  • Swift之闭包

    前言 闭包类似于OC的block,但是比OC的block应用面更广 在OC中block是匿名函数 在swift中函...

  • iOS&Swift&OC 闭包和Block的相互转化

    一、Swift的闭包 -> OC的block 二、OC的block -> Swift的闭包

  • iOS原生&JS交互

    OC 获取js中的key OC调用js方法 JS调用OC中不带参数的block JS调用OC中带参数的block ...

  • Block 与 Closure

    Block In OC block 分为以下三种: _NSConcreteStackBlock:栈block,引用...

网友评论

      本文标题:OC:Block书写

      本文链接:https://www.haomeiwen.com/subject/vxxnkqtx.html