objective-c block语句

1. 无参数无返回值的block代码

void (^myblock)() = ^{
NSLog(@"block");
};

//调用代码

myblock();

2. 有参数有返回值的block的代码

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

   return a+b;
};

//调用方法

int sum=sunblock(3 , 4);

3. block对变量的修改

int a = 10;
__block int b = 20;

void (^block)() = ^{
//内部只能修改使用 __block修饰的变量

b=25;

};
时间: 2024-11-25 15:21:14

objective-c block语句的相关文章

Objective C block背后的黑魔法

前言 block在Objective C开发中应用非常广泛,我们知道block会捕获外部对象,也知道使用block要防止循环引用. "知其然而不知其所以然"是一件很痛苦的事情,那么block这套机制在OC中是如何实现的呢?本文通过从C/C++到汇编层面分析block的实现原理. Clang clang是XCode的编译器前端,编译器前端负责语法分析,语义分析,生成中间代码(intermediate representation ). 比如当你在XCode中进行build一个.m文件的时

IOS Block基本用法

创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButton,其中UILabel是为了显示第二个视图控制器传过来的字符串,UIButton是为了push到第二个界面. 第二个界面的只有一个UITextField,是为了输入文字,当输入文字,并且返回第一个界面的时候,当第二个视图将要消失的时候,就将第二个界面上TextFiled中的文字传给第一个界面,并且显示在UILabel上. 其实核心代码就几行代码: 下面是主要代码:(因为我是用storyBoard创建的工程,所以上面

iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)

使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: 先说一下思想: 首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButton,其中UILabel是为了显示第二个视图控制器传过来的字符串,UIButton是为了push到第二个界面. 第二个界面的只有一个UITextField,是为了输入文字,当输入文字,并且返回第一个界面的时候,当第二个视图将要消失的时候,就将第二个界面上TextFiled中的文字传给第一个界面,并且显

block的作用

ios高效开发--blocks相关 1.替换delegate 如果我们有2个viewController,a和b,当我们从a界面push到b后,在b上面触发了一些事件,这些时间又会影响到a界面上的内容.       上面是2个界面,当我们点击b界面的按钮3的时候,希望a界面上文字也相应的改变了 如 一般情况下我们会用delegate来实现. 代理很强大,不过代理它是程序的事件逻辑也变的复杂了. 来看下用block怎么处理. 一个block语句的定义类似于C的函数,有返回值,有0到多个参数,接下来

属性传值 Block传值

属性传值 就是将A页面的数据传到B页面上,下面就是将FirstViewController的TextField的内容传递到SecondViewController页面的导航栏标题和控制台输出上 #import @interface FirstViewController :UIViewController { UITextField *tf; } @end #import "FirstViewController.h" #import "SecondViewControlle

iOS开发之Block

iOS开发之Block 1.block的含义和作用 UI开发和网络常见功能实现回调, 按钮的事件处理方法是回调方法, 网络下载后的回调处理 (1) 按钮 target-action 一个方法传入按钮中 (2) 表格视图 传入一个指针self, 回调视图控制器中的方法 (3) block 语句块, 解决回调, 理解为"匿名函数", 定义在方法里面 2.block的基本使用(语法) 涉及知识点: 定义block变量,定义block语句块 block参数和返回值 block捕获外部变量(包括

IOS之开发Block

数据存储 plist,FMDB,归档.网络数据的传输与解析,网络传输建议用JSON格式数据,冗余数据少. 数据下载下来缓存,可直接把缓存保存成文件,便于处理缓存中的文件.根据需求来定. block: 1.什么是block //能极大的简化代码,提高效率.很多重要的开源库当中用block写的,不一定自己写,但是要知道怎么写. UI开发和网络常见功能实现回调,按钮的事件处理方法是回调方法,网络下载后的回调处理 (1).按钮target action 一个方法传入按钮中 (2).表格视图 传入一个指针

block的用法和数组排序(高级)

一, block 我们都知道函数只可以嵌套调用,但决不允许函数的嵌套定义,这有时给我们带来了很大的不便,而OC提供的block用法为我们解决了这个问题,下面简单说一下1,block的用法: (1)block是用来存储函数,所以给block赋值时赋的是整个函数的实现,例如,要在main函数里写一个求两个数的和的函数,返回值为整型,参数为两个整型,通常在函数外面会这样写 int sum(int x, int y) { return x + y; } 如果要在函数内部写就需要用到block语句写法如下

iOS之block浅谈

前言 ios4.0系统已开始支持block,在编程过程中,block被Obj-C看成是对象,它封装了一段代码,这段代码可以在任何时候执行.block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.它和传统的函数指针很类似,但是有区别:block是inline的,并且它对局部变量是只读的. block和函数的相似性:(1)可以保存代码(2)有返回值(3)有形参(4)调用方式一样. block的使用 1.block的定义 // 声明和实现写在一起,就像变量的声明实现 int a