iOS开发中block基本使用
2015-11-02 17:42
387 查看
1.block的作用
block就是弥补了 指向函数的指针,不能够直接保存一个函数体(代码块)
例如:
2.
3.block的使用
main.m
Calculate.h
Calculate.m
block就是弥补了 指向函数的指针,不能够直接保存一个函数体(代码块)
例如:
void (^myBlock)() = ^{ NSLog(@"test"); }; myBlock();
2.
int (^sumBlock)(int a, int b) = ^int (int a, int b) { return a + b; }; int result = sumBlock(10,20); NSLog(@"result = %d",result);
3.block的使用
main.m
//如果想要改变,block代码块之外的变量值,就必须在变量前加入 //__block关键字 __block int x = 0; int (^sumBlock)(int a, int b) = ^int (int a, int b) { int result = (a * b); x = result; return result; }; //当在开发中,你发现一个方法中的算法,可以有多种实现,你一时还不能确定用哪种更好,你就可以吧方法中其中一个参数定义成block方式 // Calculate * cal = [[Calculate alloc] init]; int sum = [cal calculateWithNumber1:10 andNumber2:20 andCalculate:sumBlock]; NSLog(@"sum = %d",sum); NSLog(@"x = %d",x);
Calculate.h
#import <Foundation/Foundation.h> typedef int (^calculateBlock)(int a,int b); @interface Calculate : NSObject - (int)calculateWithNumber1:(int)number1 andNumber2:(int)number2 andCalculate:(calculateBlock)calculate; @end
Calculate.m
#import "Calculate.h" @implementation Calculate /* - (int)calculateWithNumber1:(int)number1 andNumber2:(int)number2 { // return number1 + number2; // return number1 - number2; // return number1 * number2; // return number1 / number2; } */ - (int)calculateWithNumber1:(int)number1 andNumber2:(int)number2 andCalculate:(calculateBlock)calculate { //经常变化的功能,在设计当中叫做封装变化 return calculate(number1,number2); }
相关文章推荐
- 我的iOS学习历程 - OC第六天
- 我的iOS学习历程 - OC第六天
- iOS项目工作空间搭建
- iOS的触摸事件的用法以及和手势识别器的区别
- iOS 通知的使用NSNotification的使用
- iOS SandBox 之应用程序沙盒快速入门
- GCD - 2
- iOS开发:AutoLayout关于更新的几个方法
- 添加真机调试的设备详解
- iOS学习笔记2(结合项目)--Category和Extension的区别
- ios开发:一个音乐播放器的设计与实现
- iOS 应用程序图标数字角标
- cocopods 知识集合 及 一个 好的 国外iOS技术翻译站
- iOS 如何添加引导页
- 76.ios layout机制相关方法 viewWillLayoutSubviews-当autoresizing 属性达不到你想要的 你就需要重写该方法
- iOS9 Neutraface 英文字体 百度输入法 大众点评 可用
- IOS 沙盒与清除缓存
- ios 定位经纬度中国国内修正
- ios 获取日期(年、月、日、星期、时、分、秒)
- iOS SandBox 之关于应用程序沙盒