block的复习

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;

}

结果

时间: 2024-10-07 09:37:02

block的复习的相关文章

iOS复习笔记10:使用Block

功能:保存一段代码,可以在任何时间执行. 标志:^ 跟函数类似: 1 可以保存一段代码 2 有返回值 3 有形参 4 调用方式 变量声明:更函数指针变量类似 返回值类型 (^变量名)(参数类型列表) typedef: 返回值和参数一致的block可以typedef为同一种类型 权限: block内部可以访问外面的变量: 但是,默认情况下,block内部不能修改外面的局部变量: 可以在局部变量加上__block关键字之后,这个变量就可以在block内部修改. 示例: // main.m #impo

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

css重点章节复习—布局-边框-边距-浮动 在第二个任务中,这一块的后面那条线真的弄了很久.起初也是在html里面写的代码.之后觉得这样不好,想到第一个页面中用到的border-bottom和border-top就觉得这里应该可以用border-left或者border-right 就使用了.但是出现一个问题就是不管我怎么调,整条线都是从上画到下,不能合顶部底部的两条线分开.还好记得书本里面有一处是将将垂直线和上下部分开的.查了一下,竟然是用paddding.就觉得很震惊.原来那些margin

复习的第一天

关于Block Formatting Context--BFC和IE的hasLayout BFC(Block Formatting Context)直译为“块级格式化范围”. 在普通流中的 Box(框) 属于一种 formatting context(格式化上下文) ,类型可以是 block ,或者是 inline ,但不能同时属于这两者.并且, Block boxes(块框) 在 block formatting context(块格式化上下文) 里格式化, Inline boxes(块内框)

[Java基础] Java线程复习笔记

先说说线程和进程,现代操作系统几乎无一例外地采用进程的概念,进程之间基本上可以认为是相互独立的,共享的资源非常少.线程可以认为是轻量级的进 程,充分地利用线程可以使得同一个进程中执行多种任务.Java是第一个在语言层面就支持线程操作的主流编程语言.和进程类似,线程也是各自独立的,有自 己的栈,自己的局部变量,自己的程序执行并行路径,但线程的独立性又没有进程那么强,它们共享内存,文件资源,以及其他进程层面的状态等.同一个进程内的 多个线程共享同样的内存空间,这也就意味着这些线程可以访问同样的变量和

安卓实训第九天---Activity的复习以及在Onstart里设置网络连接

今天,首先对Activity的生命周期进行复习: (下面的截图部分是借鉴自赵雅智老师的博客...) Activity的完整生命周期自第一次调用onCreate()开始,直至调用onDestroy()为止.Activity在onCreate()中设置所有"全局"状态以完成初始化,而在onDestroy()中释放所有系统资源.例如,如果Activity有一个线程在后台运行从网络下载数据,它会在onCreate()创建线程,而在 onDestroy()销毁线程. 刚进入activity: 按

流媒体技术之复习网络协议

在我们认识流媒体的传输协议前,我们需要对OSI和网络协议有一个初步认识. 1,OSI模型的七个层次及其主要功能(见下图) 2,针对于7层模型进行划分协议如下表: 应用层 应用层 表示层 会话层 应用层 1,文件传输协议FTP(File    Transfer Protocol),端口号为21: 2,简单文件传输协议TFTP(Trivial    File Transfer Protocol),端口号为69,针对小文件传输,只能从文件服务器上获得或写入文件,不能列出目录也不能进行认证 ,传输8位数

linux复习

linux的特点           - 免费的/开源           - 支持多线程/多用户           - 安全性好           - 对内存和文件管理优越       关机命令       shutdown -h now(立即进行关机)      shutdown -r now (现在重新启动计算机)      reboot (现在重新启动计算机)       进入桌面       startx       用户登录       登录时尽量少用root账户登录,因为它是系

复习Oracle中的一点知识

Oracle 10g Oracle是为网格计算而设计的 10g中的g就是指grid computing Oracle将数据存储在文件中,保存不同信息的文件(数据文件,控制文件,日志文件)就组成了数据库的物理结构 逻辑结构:schema, extent, data block, segment Schema 数据库对象的集合,创建用户时会生成一个与用户同名的Schema,Schema 直接处理data的逻辑结构(table, view, index, clusters) View -- 虚拟的,可

OC复习

// // main.m // oc复习 // // Created by User on 3/10/13. // Copyright (c) 2013 User. All rights reserved. // #import <Foundation/Foundation.h> #import "Student.h" //创建一个数组 void arrayCreate() { // 创建一个空的数组 NSArray *array = [NSArray array]; //