[Objective-c 基础 - 3.3] block数据类型
A.概念
// 没有参数和返回值的block
void (^myblock)() = ^{ // 没有形参,可以省略()
NSLog(@"这是新定义的block");
}; myblock(); // 带参数和返回值的block
int (^sum)(int a, int b) = ^(int a, int b){
return a + b;
}; int c = sum(, );
NSLog(@"%d", c);
int a = ;
void (^block)();
block = ^{
NSLog(@"a = %d", a);
};
block();
int a = ;
void (^block)();
block = ^{
a = ; // 默认情况下, block内部不能修改外面的局部变量
NSLog(@"a = %d", a);
};
block();
__block int a = ;
void (^block)();
block = ^{
a = ; // error
NSLog(@"a = %d", a);
};
block();
typedef int (^MyBlock) (int, int);
MyBlock sumBlock;
sumBlock = ^(int a, int b){
return a + b;
};
MyBlock minusBlock;
minusBlock = ^(int a, int b){
return a - b;
};
[Objective-c 基础 - 3.3] block数据类型的更多相关文章
- 黑马程序员——Block数据类型
Block数据类型,又被称为代码段.因为它可以封装一段代码.苹果官方建议多用block.因为在多线程控制.异步任务,集合遍历.集合排序.动画转场等方面用的很多. Block的特点: 1.Block 用 ...
- Java02-java语法基础(一)数据类型
Java02-java语法基础(一)数据类型 一.语法基础 语句:以分号(;)结束 System.out.println(“Hello World !”); 语句块:用一组花括号({})括起来 { … ...
- Objective-C Block数据类型 @protocol关键字
Block数据类型 Block封装了一段代码 可以在任何时候执行 Block可以作为函数参数或者函数的返回值 而其本身又可以带输入参数或返回值 苹果官方建议尽量多用Block 在多线程 异步任务 集合 ...
- 小白学开发(iOS)OC_ block数据类型(2015-08-08)
// // main.m // block数据类型 // // Created by admin on 15/8/12. // Copyright (c) 2015年 admin. All r ...
- Java基础(二) 基本类型数据类型、包装类及自动拆装箱
我们知道基本数据类型包括byte, short, int, long, float, double, char, boolean,对应的包装类分别是Byte, Short, Integer, Long ...
- Java编程基础——常量变量和数据类型
Java编程基础——常量变量和数据类型 摘要:本文介绍了Java编程语言的常量变量和数据类型. 常量变量 常量的定义 一块内存中的数据存储空间,里面的数据不可以更改. 变量的定义 一块内存中的数据存储 ...
- openresty开发系列13--lua基础语法2常用数据类型介绍
openresty开发系列13--lua基础语法2常用数据类型介绍 一)boolean(布尔)布尔类型,可选值 true/false: Lua 中 nil 和 false 为"假" ...
- MySQL基础(1) | 数据类型
MySQL基础(1) | 数据类型 数值类型 TINYINT #小整数值,1 字节,有符号(-128,127),无符号(0,255) SMALLINT #大整数值,2 字节 MEDIUMINT #大整 ...
- c# 基础部分 (基本数据类型-- 表达式)
一 基础部分 1.常用的基本数据类型 int longing(长整) shortint(短整) string(文本型) char(字符型) bool (布尔型) false true 2.常量于变量 ...
随机推荐
- 并发下常见的加锁及锁的PHP具体实现
http://www.cnblogs.com/scotoma/archive/2010/09/26/1836312.html Apache + PHP 的并发访问 http://www.cnblogs ...
- 二维图形的矩阵变换(三)——在WPF中的应用矩阵变换
原文:二维图形的矩阵变换(三)--在WPF中的应用矩阵变换 UIElement和RenderTransform 首先,我们来看看什么样的对象可以进行变换.在WPF中,用于呈现给用户的对象的基类为Vis ...
- update多表陷阱
今天同学发了个sql题目 A1表 B1表 id num id snum 1 10 1 90 2 2000 3 4000 3 30 B表的数据插入A表当中 最后的结果 A表 1 90 2 2000 3 ...
- 部分常见ORACLE面试题以及SQL注意事项
部分常见ORACLE面试题以及SQL注意事项 一.表的创建: 一个通过单列外键联系起父表和子表的简单例子如下: CREATE TABLE parent(id INT NOT NULL, PRIMARY ...
- Windbg:如何给字符串下条件断点
因为Windgb支持MASM语法,字符串的比较方法有$scmp和$sicmp.用法和c中的字符串比较方法一致.在需要比较字符串成员变量的时候,遇到了点问题.因为字符串成员变量无法直接获取字符串内容.p ...
- Vim Gtags插件
01.Gtags func:查看定义处 02.Gtags -r func:查看引用处 03.Gtags -s text:查看未被数据库定义的tags 04.copen:打开quick fix显示窗口 ...
- request对象常用API 获取请求参数的值 request应用 MVC设计模式
1 request对象常用API 1)表示web浏览器向web服务端的请求 2)url表示访问web应用的完整路径:http://localhost:8080/day06/Demo1 ...
- windows 远程桌面连接 RPi 2B
/************************************************************************* * windows 远程桌面连接 RPi 2B * ...
- 【jsonp】
function handleResponse(response) { alert("You’re at IP address " + response.ip + ", ...
- 【转】 C++中如何在一个构造函数中调用另一个构造函数
在C++中,一个类的构造函数没法直接调用另一个构造函数,比如: #ifndef _A_H_ #define _A_H_ #include <stdio.h> #include <ne ...