main.m

//

//  main.m

//  8A10.Block的复习

//

//  Created by huan on 16/2/8.

//  Copyright © 2016年 huanxi. All rights reserved.

//

#import <Foundation/Foundation.h>

//函数定义

void test(){

}

int sum(int a, int b){

return a + b;

}

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

@autoreleasepool {

// insert code here...

//复习block

//什么是block 就一个代码块

//block和函数与什么区别

//1.函数只能在方法外面定义

//2.block可以定义在方法内,也可以定义在方法外面

//3.block和函数共同点:都有返回值和参数

//block定义

//无返回值 无参数的block

void(^testBlock)() = ^{

NSLog(@"无返回值 无参数的block");

};

testBlock();

//无返回值 有参数的block

void(^test2Block)(int) = ^(int a){

NSLog(@"你传入的是%d", a);

};

test2Block(2);

//有返回值,有参数的block

int(^sumBlock)(int,int) = ^(int a,int b){

return a + b;

};

int result = sumBlock(2,3);

NSLog(@"通过block的计算,结果是:%d", result);

//有返回值,无参数的blcok

//block可重定义 typedef

typedef void (^MTestBlock)();

// 给无返回值,无参数的blcok进行- 自定义

MTestBlock mtestBlcok = ^(){

NSLog(@"重定义的block");

};

mtestBlcok();

//定义一个特殊操作的blcok

typedef void (^OperationBlock)();

OperationBlock operationBlock = ^(){

NSLog(@"正在检查的版本更新");

};

operationBlock();

NSLog(@"Hello, World!");

}

return 0;

}

结果

block的复习的更多相关文章

  1. OC语言(七)Block复习

    看下面一道Block的面试题: int i = 10; void(^myBlock)() = ^{ NSLog(@"%d",i); }; i = 100; myBlock(); 经 ...

  2. iOS总结_UI层自我复习总结

    UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...

  3. 《CSS权威指南》基础复习+查漏补缺

    前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...

  4. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  5. C#复习③

    C#复习③ 2016年6月16日 11:13 Main Declaration & Statement 声明和语句 1.一个程序包含的声明空间有哪些? Namespace : declarat ...

  6. css重点章节复习—布局-边框-边距-浮动 (部分)

    css重点章节复习—布局-边框-边距-浮动 在第二个任务中,这一块的后面那条线真的弄了很久.起初也是在html里面写的代码.之后觉得这样不好,想到第一个页面中用到的border-bottom和bord ...

  7. Jquery 复习练习(01)

    Jquery 复习练习 window.onload = function() {} == $(function() {}); 千万注意:js对象和jq对象的区别,这也是常常犯的错误 js对象举例: w ...

  8. linux复习

    linux的特点           - 免费的/开源           - 支持多线程/多用户           - 安全性好           - 对内存和文件管理优越       关机命令 ...

  9. iOS深入学习(再谈block)

    之前写过一篇博客,把Block跟delegate类比,说明了使用block,可以通过更少的代码实现代理的功能.那篇博客将block定义为类的property. 过了这么长时间,对于block的内容有了 ...

随机推荐

  1. android_demo之自动生成动态表格

    今天我们学习了如何更好的利用Android 的 layout 布局. 接下来是个简单的栗子去了解这个自动生成的动态的控件(自动生成表格) 这是我们的layout 页面 <?xml version ...

  2. DIOCP之开发流程图之Server

    server开发流程图 暂时没有找到好的流程图绘制软件,就用画图来做的,比较乱,太慢了

  3. Python Microsoft Visual C++ Compiler Package for Python 2.7

    错误描述: 在从源代码安装Python模块时遇到此错误.可是我明明从官网下载并安装了Microsoft Visual C++ Compiler Package for Python 2.7,且配置了环 ...

  4. GD图片(画布)的制作及验证码的应用

    创建画布:创建画布的函数有 imagecreatetruecolor(width,height);创建画布 width指画布的宽height指画布的高 imagecolorallocate(img,r ...

  5. JSP(include指令)页面

    <%@ page language= "java" contentType="text/html;charset=UTF-8" %><html ...

  6. ANDROID开发之问题积累及解决方案(一)

    一.activity跳转及传值 当进行activity之间的跳转时我们会遇到这样的问题.首先熟悉下activity之间跳转.Activity跳转与传值,主要是通过Intent类来连接多个Activit ...

  7. HDMI学习

    市面上大多4K显示器都配备了HDMI 1.4接口,仅能实现30Hz的刷新率,不足以带来流畅的显示效果, 酱紫情况,就算是搭配了HDMI 2.0高清线也是无法发挥其作用.只有更先进的HDMI 2.0标准 ...

  8. Windows 程序设计

    一.Win32 API /******************************************************************** created: 2014/04/1 ...

  9. C#获取程序集自动增加的版本号和编译时间

    1. 首先找到文件AssemblyInfo.cs, 路径如下: 2. 修改版本的格式,修改后,程序每次编译,程序集的版本号都会自增. 修改前: [assembly: AssemblyVersion(& ...

  10. VaR实现实证

    投资组合Var计算实例 http://financetrain.com/analytical-approach-to-calculating-var-variance-covariance-metho ...