oc block基本使用
//
// main.m
// block基本使用
//
// Created by Ymmmsick on 15/7/21.
// Copyright (c) 2015年 Ymmmsick. All rights reserved.
// #import <Foundation/Foundation.h>
typedef int (^IntBlock)() ;
typedef void (^VoidBlock)(); int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
NSLog(@"这个哥修改过的模版!"); //没有行参,没有返回值的block
void (^testBlock)() = ^ {
NSLog(@"Block---->Test");
NSLog(@"Block---->Test");
}; testBlock(); //有行参有返回值的block
int (^sumBlock)(int,int) = ^(int a,int b){
return a+b;
};
NSLog(@"sum is :%d",sumBlock(,)); //typedef
IntBlock productBlock = ^(int a,int b){
return a * b;
};
NSLog(@"product is :%d",productBlock(,)); /*
Block访问外部变量
1.block内部可以访问外部的变量
2.默认情况下,block不能修改外部的变量
3.外部变量添加__block关键字,block内部就可以修改外部的变量
*/ __block int a = ;
VoidBlock areaBlock = ^{
a = ;
NSLog(@"a = %d",a);
};
areaBlock();
}
return ;
}
oc block基本使用的更多相关文章
- Swift3.0 函数闭包与OC Block
刚接触Swift,如有不对的点,欢迎指正.转载请说明出处 定义一个基本函数 //定义一个函数,接收一个字符串,返回一个String类型的值 func test(name:String) -> S ...
- OC Block网上转载
1.block是一个特殊的OC对象, 它建立在栈上, 而不是堆上, 这么做一个是为性能考虑,还有就是方便访问局部变量. 2.默认情况下block使用到的局部变量都会被复制,而不是保留.所以它无法改变局 ...
- OC BLOCK和协议
一.BOLCK (一)简介 BLOCK是什么?苹果推荐的类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,BLOCK可以在任何时候执行. block实际上是: 指向结构体的指针 BOLC ...
- OC block的简单使用
http://blog.csdn.net/itpeng523/article/details/23965147 一.先用Xcode创建一个空工程 学习block之前先用弄懂c语言的函数指针 看代码: ...
- iOS - OC Block 代码块
前言 Block 是一段预先准备好的代码,可以在需要的时候执行,可以当作参数传递.Block 可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.Block 是 C 语言的,类似于一个 ...
- [OC] Block的使用
由ControllerA跳转到controllerB,在controllerB中选择一个参数的值,并将它传回给controllerA. 首先,在controllerB的.h文件中写入: @interf ...
- OC Block(代码块)
#import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...
- OC block声明和使用
#import "Button.h" typedef int (^MySum) (int, int); void test() { // 定义了一个block,这个block返回值 ...
- oc block 遍历数组及字典
原遍历数组NSArray * lines = ...for (NSString * line in lines) { // ...}for (int i = 0; i < lines.count ...
随机推荐
- AngularJS如何给动态添加的DOM中绑定事件
正常情况(即非动态插入 DOM 对象)下,ng-click 这样的指令之所以有效(即点击之后能调用注册在可见作用域里的方法),是因为 angular 在 compiling phase(编译阶段)将宿 ...
- jQuery中的DOM操作总结
jQuery中的DOM操作 DOM是Document Object Medel的缩写,它的意思是文档对象模型,根据W3C的官方说法,DOM是一种跟浏览器,平台以及语言都没有关系的一种规范,也就是一种接 ...
- BaseActivity的定义——作为所有Activity类的父类
public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener { prote ...
- python super研究
# encoding=utf-8 class A(object): def __init__(self): print "初始化a" def run(self): print &q ...
- 解析XML【C#】
1.XML元素XML元素包含一个开标记.元素中的数据.闭标记例如:<book>book name</book>其中book是元素名称 book name是元素数据元素名称区 ...
- 用JavaScript将数字转换为大写金额
var digitUppercase = function(n) { var fraction = ['角', '分']; var digit = [ '零', '壹', '贰', '叁', '肆', ...
- 【测试Json的多空格问题】
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- relay 2015-02-05 21:00 27人阅读 评论(0) 收藏
scanf函数是以在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔,则可用空格,TAB或回车作间隔. C编译在碰到空格,TAB,回车或非法数据(如对"%d"输 ...
- C Deepin指针
L-value -->标识了一个可以存储结果值的内存存储地址--指针变量 or 普通内存变量; R-value -->数值;
- ubuntuOS
OpenStack icehource for Ubuntu OS 1,网络规划 2,Ntp apt-get install ntp 3,generate secure passwd apt-get ...