文档章节

block的使用(四)

我爱觉觉
 我爱觉觉
发布于 2016/02/29 11:52
字数 192
阅读 5
收藏 0
点赞 0
评论 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;

}


© 著作权归作者所有

共有 人打赏支持
我爱觉觉
粉丝 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
iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式

一、使用for循环 优点:简单 缺点:由于字典和集合内部是无序的,导致我们在遍历字典和集合的时候需要借助一个新的『数组』作为中介来处理,多出了一部分开销。 二、使用NSEnumerator遍历 优...

ziyuzhiye
2017/11/14
0
0
Block循环引用

前言 在我们开发的过程中,block运用的非常广泛,为了避免写过多的delegate或者是通知等,项目中会运用大量的block回调,虽然现在大部分的工程都是采用ARC,但是在ARC上面使用block更为复杂,...

麦兜卖鱼丸
2016/05/27
129
0
Objective-C中 Block 在iOS在4.0版本的使用

Objective-C中 Block 在iOS在4.0版本的使用 了解何谓block。 了解block的使用方法。 Block 是iOS在4.0版本之后新增的程序语法. 在iOS SDK 4.0之后,Block几乎出现在所有新版的API之中,换句话...

浩浩老师
2015/09/11
228
0
iOS __block,__weak,__strong 的理解

block 在 block 里面可以访问局部变量,但是不能修改局部变量,这是因为当局部变量在 block 中使用时,实际上是使用的变量在 block 中复制的数据,所以在 block 中修改的变量并不能修改 bloc...

旅途开发者
2017/12/29
0
0
关于布局网格,jquery mobile最多只支持一行三列的表格,有没一行多列的?

Block A Block B Block C 求解?有没四列五列的?

开源中国首席攻城师
2011/11/21
3K
3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

50 行 Python 代码,带你追到最心爱的人

程序员世纪难题 人们一提到程序员第一反应就是:我知道!他们工资很高啊!但大部分都是单身狗,不懂得幽默风趣,只是每天穿格子 polo 衫的宅男一个。甚至程序员自己也这样形容自己:钱多话少...

猫咪编程
8分钟前
0
0
JAVA知识点随心记

1.Switch case具体的支持类型? Q:支持byte、short、char、int基本类型,枚举类型和String类型(JDK7以上支持),四种基本类型的包装类型也支持,但是原因在于触发了自动拆箱,将包装类型拆成了基本...

勤奋的蚂蚁
18分钟前
0
0
NoSQL

一、NoSQL介绍 NoSQL属于非关系型数据,mysql属于关系型数据库。 对于关系型数据库来说,是需要把数据存储到库、表、行、字段里,查询的时候根据条件一行一行地去匹配,当数据量非常大的时候...

人在艹木中
23分钟前
0
0
第17章MySQL主从配置

mysql安装总结 mysql主从准备工作: 准备两台机器,每台机器安装msyql服务,并启动mysql服务 mysql详细安装 1.首先下载二进制免编译的包,下载到/usr/local/src/目录下 2.解压压缩包 3.解压完...

Linux学习笔记
27分钟前
0
0
Redis高可用及分片集群

一、主从复制 使用异步复制 一个服务器可以有多个从服务器 从服务器也可以有自己的从服务器 复制功能不会阻塞主服务器 可以通过服务功能来上主服务器免于持久化操作,由从服务器去执行持久化...

Java大蜗牛
31分钟前
0
0
前端面试题汇总

最近在复习,准备找工作了,特此总结一下前端的相关知识。 1.获取浏览器URL中查询字符的参数: function getQuery(name){    var reg = new RegExp("(^|&)"+name+"=([^&]*)"(&|$));...

凛冬来袭
今天
0
0
可持续发展的学习道路

与其要求别人,不如提升自己 内心渴望进步 经常做出改变现有模式,不断学习 寻找资源,整合资源,不断熟练这种模式 渠道很重要 先打开新世界的航路

狮子狗
今天
0
0
apollox-lua开源项目 示例codepen2

今天在示例上增加了几个功能, 首先添加js array的标准库。 所有js array的方法目前都支持了。 添加查看code模式。 点击查看code可以看到生成的lua代码。默认web模式需要把标准库连接进来, ...

钟元OSS
今天
0
0
javascript性能优化之避免重复工作

javascript最重要也最根本的性能优化标准之一是避免工作,避免工作又包括两点,第一,不做不必要的工作,第二,不做重复的已经完成的工作。第一部分可以通过代码重构完成,第二部分不做重复的...

老韭菜
今天
0
0
缓存穿透、并发和雪崩那些事

0 题记 缓存穿透、缓存并发和缓存雪崩是常见的由于并发量大而导致的缓存问题,本文讲解其产生原因和解决方案。 缓存穿透通常是由恶意攻击或者无意造成的;缓存并发是由设计不足造成的;缓存雪...

Java填坑之路
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部