//
// 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基本使用的更多相关文章

  1. Swift3.0 函数闭包与OC Block

    刚接触Swift,如有不对的点,欢迎指正.转载请说明出处 定义一个基本函数 //定义一个函数,接收一个字符串,返回一个String类型的值 func test(name:String) -> S ...

  2. OC Block网上转载

    1.block是一个特殊的OC对象, 它建立在栈上, 而不是堆上, 这么做一个是为性能考虑,还有就是方便访问局部变量. 2.默认情况下block使用到的局部变量都会被复制,而不是保留.所以它无法改变局 ...

  3. OC BLOCK和协议

    一.BOLCK (一)简介 BLOCK是什么?苹果推荐的类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,BLOCK可以在任何时候执行. block实际上是: 指向结构体的指针 BOLC ...

  4. OC block的简单使用

    http://blog.csdn.net/itpeng523/article/details/23965147 一.先用Xcode创建一个空工程 学习block之前先用弄懂c语言的函数指针 看代码: ...

  5. iOS - OC Block 代码块

    前言 Block 是一段预先准备好的代码,可以在需要的时候执行,可以当作参数传递.Block 可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.Block 是 C 语言的,类似于一个 ...

  6. [OC] Block的使用

    由ControllerA跳转到controllerB,在controllerB中选择一个参数的值,并将它传回给controllerA. 首先,在controllerB的.h文件中写入: @interf ...

  7. OC Block(代码块)

    #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...

  8. OC block声明和使用

    #import "Button.h" typedef int (^MySum) (int, int); void test() { // 定义了一个block,这个block返回值 ...

  9. oc block 遍历数组及字典

    原遍历数组NSArray * lines = ...for (NSString * line in lines) { // ...}for (int i = 0; i < lines.count ...

随机推荐

  1. Java API设计CheckList

    API设计原则:正确.好名.易用.易学.够快.够小.但我们从来不缺原则,〜〜〜 Interface 1.The Importance of Being Use Case Oriented,一个接口应当 ...

  2. 关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别(跳出iframe方法)

    "window.location.href"."location.href"是本页面跳转 "parent.location.href"是上一 ...

  3. Android 上传库到Binary的操作

    第一次,按照网上教程配置需要的配置文件,上传成功 1.0版本. 以后更新的时候 输入 : install ,执行task 然后再输入:bintrayUpload ,执行task,看下面控制台输出信息, ...

  4. Android Bitmap圆角

    代码如下: public Bitmap transform(Bitmap source) { int size = Math.min(source.getWidth(), source.getHeig ...

  5. M端页面-绝对定位布局

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...

  6. HDU1043 Eight(BFS)

    Eight(South Central USA 1998) Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d & ...

  7. JavaScript 问答 - No.1

    1     什么是JavaScript? JavaScript 是世界上最流行的脚本语言. JavaScript 是属于 web 的语言,它适用于 PC.笔记本电脑.平板电脑和移动电话. JavaSc ...

  8. How to delete the icons of Win7 desktop shortcuts

    1. Copy the following bat code in txt type file, 2. save it as file extension type bat, run it as ad ...

  9. Logstash type来标记事件类型,通过type判断

    /*************** 根据type判断 input { file { type => "zj_frontend_access" path => [" ...

  10. HDU2084 数塔 (DP入门题)

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...