//

//  main.m

//  1211块练习

//

//  Created by jerehedu on 14/12/11.

//  Copyright (c) 2014年 jereh. All rights reserved.

//

#import <Foundation/Foundation.h>

;

;

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

{

//    int __block c=19;

@autoreleasepool {

//block能够訪问局部变量,可是不能改动

//__block 块改动 keyword   不加的话无法在块内对c(局部变量)进行改动

;

void (^nBlock)()=^{

;

NSLog(@"%i",c);

};

nBlock();

//外部变量能够直接操作、改动

void (^nmBlock)()=^{

NSLog(@"%i",++a);

};

nmBlock();

NSLog(@"%i,%i",a,b);

//block保存一段代码,用花括号括起来

//block标志是^

/*block与函数比較

1.能够保存代码

2.有返回值

3.有形參

4.调用方式和C调用函数一样

*/

//没有參数返回值的块

void (^ myBlock)();

myBlock=^{

NSLog(@"没有參数返回值的块。

");

};

//直接写完不会被运行,被保存起来了,须要调用

//块的调用

myBlock();

//写在一起

void(^ myblock)()=^{

NSLog(@"没有參数返回值的块。

");

};

myblock();

//能够把块写在main的上面,则整个函数体内直接调用就可以

//==========================================================

//有參数返回值的 加法

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

return a+b;  //此处括号内形參能够省略

};

))  ;

//通过block,打印出N条直线。N是调用块时传入

void(^ lineBlock)(int)=^(int N){

; i<N; i++) {

NSLog(@"______________");

}

};

);

//减法

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

return a-b;

};

));

//typedef  用MyBlock取代int (^ MyBlock)(int,int)

typedef int (^ MyBlock)(int,int);

//乘法简化 MyBlock是类型,不能直接用来调用block,须要用变量名来调用

MyBlock mulBlock=^(int a,int b){

return a*b;

};

));

//除法

MyBlock divBlock=^(int a,int b){

return a/b;

};

));

}

;

}

block的知识点的更多相关文章

  1. 使用layer弹出Ueditor实现父子传值

    Layear的代码:     function tankuang() {        layer.open({            type: 2,            title: false ...

  2. iOS_SDWebImage框架分析

    SDWebImage 支持异步的图片下载+缓存,提供了 UIImageView+WebCacha 的 category,方便使用.使用SDWebImage首先了解它加载图片的流程. 入口 setIma ...

  3. Python守护进程、进程互斥锁、进程间通信ICP(Queue队列)、生产者消费者模型

    知识点一:守护进程 守护进程:p1.daemon=True 守护进程其实就是一个“子进程“,守护=>伴随 守护进程会伴随主进程的代码运行完毕后而死掉 进程:当父进程需要将一个任务并发出去执行,需 ...

  4. Block知识点总结

    block的作用 block用于保存一段代码 在适当的时候再使用  它是一种数据类型 block的定义格式: 返回值  (^block变量名)(形参列表) = ^(形参列表) { 需要执行的代码}; ...

  5. block知识点

    1.block引用局部变量的时候,该变量会作为常量编码到block中,在block中不能被修改. 2.使用 __block修饰的局部变量,不会作为常量被编码到block中,故而在block中可以被修改 ...

  6. 【干货分享】前端面试知识点锦集02(CSS篇)——附答案

    二.CSS部分 1.解释一下CSS的盒子模型? 回答一:a.标准的css盒子模型:宽度=内容的宽度+边框的宽度+加上内边具的宽度b.网页设计中常听的属性名:内容(content).填充(padding ...

  7. 【干货分享】前端面试知识点锦集01(HTML篇)——附答案

    一.HTML部分 1.浏览器页面有哪三层构成,分别是什么,作用是什么? 构成:结构层.表示层.行为层分别是:HTML.CSS.JavaScript作用:HTML实现页面结构,CSS完成页面的表现与风格 ...

  8. css知识点整理

    CSS是Cascading Style Sheets的简称,中文称为层叠样式表,用来控制网页数据的表现,可以使网页的表现与数据内容分离. 一.css引入的方式 1.行内样式:行内式是在标记的style ...

  9. Block formatting context(块级格式化上下文)

    今天看到豆瓣面试官的一篇文章,讲到关于CSS中的一个知识点:Block formatting context  ,感觉这个确实挺有用,同时我也挺赞同作者的一些观点的,这里就不展开谈我的感受了, 此文只 ...

随机推荐

  1. MyBatis插入时候获取自增主键方法

    方法一:(Oralce不支持这种写法) useGeneratedkeys 默认值为 false,含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty ...

  2. pdf转tiff

    概述 基于Java,将pdf转成单一的tiff文件. MAVEN依赖 <groupId>com.sun.media</groupId> <artifactId>ja ...

  3. 树链剖分【CF165D】Beard Graph

    Description 给定一棵树,有m次操作. 1 x 把第x条边染成黑色 2 x 把第x条边染成白色 3 x y 查询x~y之间的黑边数,存在白边输出-1 Input 第1行为一个整数\(n\), ...

  4. 洛谷——P1629 邮递员送信

    P1629 邮递员送信 题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要 ...

  5. Struts2中的设计模式

    http://blog.csdn.net/significantfrank/article/details/7712053 1. Command Pattern 基本定义: 把Command(Requ ...

  6. python基础之包与logging模块

    包 1.什么是包? 包是模块的一种形式,包的本质就是一个含有__init__.py文件的文件夹 2.为什么要有包? 提高程序的结构性和可维护性 3.如何使用包? 导入包就是在导包下的__init__. ...

  7. (原创)Stanford Machine Learning (by Andrew NG) --- (week 7) Support Vector Machines

    本栏目内容来源于Andrew NG老师讲解的SVM部分,包括SVM的优化目标.最大判定边界.核函数.SVM使用方法.多分类问题等,Machine learning课程地址为:https://www.c ...

  8. Hibernate的QBC检索方式

    Hibernate的QBC检索方式 一直习惯了Hibernate的HQL查询,一直也觉得挺方便,对于最近项目里出现的QBC(org.hibernate.Criteria接口)也是报着一种看看的心理,因 ...

  9. android中自定义checkbox的图片和大小

    其实很简单,分三步: 1.在drawable中创建文件checkbox_selector.xml: <?xml version="1.0" encoding="ut ...

  10. Mysql五种时间格式

    YEAR [字节数]:1 [取值范围]:1901~2155 [赋值]: 4位数字 2位字符串:'00'~'69'相当于2000~2069:'70'~'99'相当于1970~1999 2位数字:与2位数 ...