//

//  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. Java数据库连接池-proxool

    连接池技术的思想: 连接复用(高效.安全),避免数据库频繁建立.关闭的开销 --------------------极客学院(参考lulei) 1.配置文件 <proxool> <! ...

  2. CentOS 7 Docker

    安装docker yum install docker 查看docker docker version 这是因为docker还没有运行,需要启动docker 启动docker systemctl st ...

  3. ps aux 状态介绍

    ps aux 输出 参数 含义 详解 运行 ps aux 的到如下信息:   ps auxUSER    PID   %CPU %MEM VSZ   RSS TTY    STAT   START T ...

  4. vue-music 关于Player (播放器组件)--播放模式

    播放器播放模式有三种,顺序播放,单曲循环,随机播放,定义在vuex 中的字段为 mode.点击切换播放模式的图标.切换模式判断是否为随机播放,如果是随机播放模式,则取得sequenceList 列表数 ...

  5. Js文件中调用其它Js函数的方法

    在项目开发过程中,也许你会遇这样的情况.在某一Js文件中需要完成某一功能,但这一功能的大部分代码在另外一个Js文件中已经完成了,自己只需要调用这个方法再加上几句代码就可以实现所需的功能.我们知道,在h ...

  6. 洛谷——P2141 珠心算测验

    P2141 珠心算测验 题目描述 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术.珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及. 某学校的珠心算老师 ...

  7. 永久修改IP地址

    第一种方法:使用nmtui文本框的方式修改IP 在命令行中输入nmtui,回车<Enter>会出现下图(英文的请自己对照,有点丑) 选择编辑 进入到如下界面,需要配置IPv4地址,要将IP ...

  8. Flask实战第53天:cms编辑轮播图功能完成

    后端逻辑 表单验证, 这里编辑就是和添加的内容一样,所以可以直接继承添加轮播图的表单验证,然后多加一个轮播图的id即可 编辑cmd.forms.py class UpdateBannerForm(Ad ...

  9. python队列、线程、进程、协程(转)

    原文地址: http://www.cnblogs.com/wangqiaomei/p/5682669.html 一.queue 二.线程 #基本使用 #线程锁 #自定义线程池 #生产者消费者模型(队列 ...

  10. A - Chinese Girls' Amusement ZOJ - 2313(大数)

    You must have heard that the Chinese culture is quite different from that of Europe or Russia. So so ...