文档章节

block的使用(二)

我爱觉觉
 我爱觉觉
发布于 2016/02/29 11:05
字数 351
阅读 14
收藏 0
点赞 1
评论 0

typedef int INT; // int定义别名INT

typedef int ARR[4]; ARR a1;//定义了一个长度为4的整形数组

//typedef  定义类型

// typedef 给基本数据类型 构造类型 枚举类型 函数指针 起别名

// 函数指针: 指向函数的指针


#import <Foundation/Foundation.h>


int sum(int a,int b){

    return a+b;

}


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

    @autoreleasepool {

        // 调用函数

        int s1 = sum(10, 119); // 函数名存储的是函数的首地址

        NSLog(@"%d",s1); // 129

        // 函数指针p,p指向的是sum函数的首地址

        int (*p)(int a, int b);

        p = sum; // p赋初始值

        int s2 = (*p)(10,119);

          NSLog(@"%d",s2); // 129

        

        typedef int (*p1)(int a, int b); //给返回值是int并且有2个参数的函数起别名,别名是p1p1是一种类型

        

        // 定义无参无返回值的block变量

        void (^block1)(); // block1是一个返回值是void没有参数的block变量

        block1 = ^{

            NSLog(@"hahah");

        };

        

        // 使用typedef

        typedef void(^block2)(); // 给返回值是void 没有参数的代码块起一个别名,别名是block2

//        block2 = ^{

//            NSLog(@"222");

//        };   会报错

        

        block2 bb; // bb是一个block变量

        bb = ^{

            NSLog(@"bb");

        };

        

        bb();

        

        // 给有参数没有返回值的block起别名

        typedef void(^blockType)(int); // blockType 是一个类型

        blockType b1;

        b1 = ^(int a) {

            NSLog(@"a = %d",a);

        };

        

        b1(10);

        

        // 给有参数有返回值的block起别名

        

        typedef int(^blockType2)(int ,int);

        blockType2 b2 = ^ (int x,int y) {

            return x + y;

        };

        

        int sum = b2(10,5);

        NSLog(@"%d",sum);

    }

    return 0;

}


© 著作权归作者所有

共有 人打赏支持
我爱觉觉
粉丝 2
博文 49
码字总数 10640
作品 0
海淀
iOS之Block详解

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

_子墨
2016/03/01
371
0
IOS--Block入门

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

Mark_Jiang
2016/01/07
38
0
iOS中动态更新补丁策略JSPatch运用基础二

iOS中动态更新补丁策略JSPatch运用基础二 一、引言 上篇博客中介绍了iOS开发中JSPatch引擎进行动态热修复的一些基础功能,其中包括向Objective-C类中添加类方法与成员方法、添加临时成员变量...

珲少
2016/03/30
265
0
iOS中block的使用

一、block简介 block代码块是在iOS4开始引入的对C语言的扩展,用来实现匿名函数的特性,block是一种特殊的数据类型,其可以正常定义变量、作为参数、作为返回值,blcok还可以保存一段代码,在...

勤劳的小QQ
2017/04/21
0
0
Block 在不同情况下的变量存储区域

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

JasonMs
2015/09/05
405
0
Block循环引用

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

麦兜卖鱼丸
2016/05/27
129
0
iOS之Block-终结篇

前言 小时候家长和老师都教导我们,做人要善良要懂得吃亏.长大以后,才知道这样真的不好,有的时候你越是忍让越是糟糕,难受的是自己,有一句话说的很好:草木有本心,何须美人折? 活出自己最重要!...

有毒的程序猿
2017/03/02
0
0
Foundation框架之集合

一、NSArray和NSMutableArray (一)NSArray不可变数组 (1)NSArray的基本介绍 NSArray是OC中使用的数组,是面向对象的,以面向对象的形式操纵对象,是不可变数组。 C语言数组有一个缺点即数...

DevShaw
2016/01/07
11
0
iOS 对于block的理解

Block是一种数据类型,C语言中的匿名函数,可以被当做参数和返回值传递,它是提前准备好的能工作的代码单元,可以在任何需要的时候被执行。 特意小结了下对 block 的一些理解,如下: 一、默认...

北方人在上海
2016/04/01
26
0
(四)Block之 __block修饰符及其存储域

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

madaoCN
2017/10/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

expect脚本同步文件、expect脚本指定host和要同步的文件、构建文件分发系统

expect脚本同步文件 更改权限 执行脚本 查看执行结果 expect eof需要加上,作用是等脚本命令执行完再进行退出 expect脚本指定host和要同步的文件 更改权限,执行脚本 构建文件分发系统 需求背...

Zhouliang6
41分钟前
1
0
Hive应用:外部分区表

Hive应用:外部分区表 介绍 Hive可以创建外部分区表。创建表的时候,分区要在建表语句中体现。建完之后,你不会在表中看到数据,需要进行分区添加,使用alter语句进行添加。然后数据才会显示...

星汉
52分钟前
3
0
点击Enter登录

1. 效果 2. 实现过程(记得引入jq文件) //6.回车事件 登录 $(function() { document.onkeydown = function(event) { var e = event || window.event || arguments.callee.caller.arguments......

Lucky_Me
57分钟前
1
0
点击菜单内容切换

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .menu{ height: 38px; background-color: #eeeeee; line-height: 38px; } .mao{ ......

南桥北木
今天
1
0
OSChina 周六乱弹 —— 妹子和游戏哪个更好玩

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @andonny :分享唐朝乐队的单曲《国际歌》 《国际歌》- 唐朝乐队 手机党少年们想听歌,请使劲儿戳(这里) @举个栗子- :日常祈雨 邪恶的大祭...

小小编辑
今天
572
7
流利阅读笔记32-20180721待学习

“人工智能”造假:只有人工,没有智能 Lala 2018-07-21 1.今日导读 当今社会,擅长单个方面的人工智能已经盛行,手机借助 AI 智慧防抖技术帮助大家拍出清晰照片,谷歌研发的 AI 助手将可以帮...

aibinxiao
今天
8
0
我的成长记录(一)

今天突然精神抖擞,在我的博客下新开一项分类>成长记录,专门记录每隔一段时间我的一点感悟吧。因为今天才专门花时间新开这样一个分类,所以以前有过的一些感悟没有记录下来,现在已经想不起...

dtqq
今天
1
0
机器学习管理平台 MLFlow

最近工作很忙,博客一直都没有更新。抽时间给大家介绍一下Databrick开源的机器学习管理平台-MLFlow。 谈起Databrick,相信即使是不熟悉机器学习和大数据的工程湿们也都有所了解,它由Spark的...

naughty
今天
17
0
idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
2
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部