文档章节

block的使用(四)

我爱觉觉
 我爱觉觉
发布于 2016/02/29 11:52
字数 192
阅读 6
收藏 0

//  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;

}


© 著作权归作者所有

共有 人打赏支持
上一篇: block的使用(五)
我爱觉觉
粉丝 2
博文 49
码字总数 10640
作品 0
海淀
私信 提问
IOS--Block入门

Block介绍 一:Block是一种具有匿名功能的内嵌函数,特性如下: (1):如一般函数能拥有带有型态的参数 (2):拥有回传值 (3):可以获取和选择性地修改作用域的状态 二:Block的使用 Bl...

Mark_Jiang
2016/01/07
38
0
iOS之Block详解

iOS Block实例:https://my.oschina.net/Jacedy/blog/842167 一、Block定义 闭包是一个函数(或指向函数的指针),再加上该函数执行的外部的上下文变量(有时候也称作自由变量)。 block 实际...

_子墨
2016/03/01
371
0
Block 在不同情况下的变量存储区域

一.如果只使用全局或静态变量或不使用外部变量, 那么Block块的代码会存储在全局区; 二.如果使用了外部变量, 在ARC中, Block块的代码会存储在堆区; 在MRC中, Block快的代码会存储在栈区; 三....

JasonMs
2015/09/05
405
0
(三)Block之截获变量和对象

相关文章 (一)Block的实质初探 (二)Block之存储域 NSConcreteStackBlock,NSConcreteGlobalBlock,NSConcreteMallocBlock (三)Block之截获变量和对象 (四)Block之 _block修饰符及其存...

madaoCN
2017/10/21
0
0
(四)Block之 __block修饰符及其存储域

相关文章 (一)Block的实质初探 (二)Block之存储域 NSConcreteStackBlock,NSConcreteGlobalBlock,NSConcreteMallocBlock (三)Block之截获变量和对象 (四)Block之 _block修饰符及其存...

madaoCN
2017/10/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

echarts实现中国地图

最近项目中有个需求:在地图上展示各省市的数据分布,像这样: 项目中接入的图表展示工具是echart,查了echart官网,发现并没有中国地图相关的实现,唯一接近的,只有香港18区人口密度。没办...

Funcy1122
16分钟前
0
0
持续集成工具Jenkins结合SVN的安装和使用

持续集成工具Jenkins结合SVN的安装和使用 2018年06月08日 11:30:23 止步前行 阅读数:2932 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zxd1435513775/ar...

linjin200
23分钟前
0
0
ES6 对象的解构赋值

基本用法 1.等号右边如果不是数组,将会报错(不是可遍历结构) 2.解构赋值 var, let, const命令声明均适用 3.set结构也可解构赋值(具有Iterator接口,可采用数组形式结构赋值) set解构:任何...

Jack088
25分钟前
0
0
微信小程序富文本table超出宽度处理

一、微信小程序富文本table超出宽度处理 处理思路: 使用正则删除table中的width属性。 //去除table的宽度content = content.replace(/<table[^>]*>/gi, function (match, capture) { ...

tianma3798
27分钟前
0
0
阿里云全站加速DCDN全面支持WebSocket协议

WebSocket协议可以为网站和应用提供真正的双向通信,具有控制开销、保持连接状态、更强实时性、更好的压缩效果等优点,是当下低延时应用最常采用的一种技术协议。为了更好的满足客户在实时通...

阿里云官方博客
28分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部