Object-c: Block (方法块)
来源:互联网 发布:大数据分析是什么专业 编辑:程序博客网 时间:2024/05/17 00:57
1、block 是个方法块,他可以提前定义,在调用出在执行。定义格式如下:
int (^sum) (int, int) = ^(int a, int b){
return a+b;
};
其中^是block的一个符;
2、还可以将block定义成一个typedef:
typedef (int) (^sum) (int,int);
@property (nonatuomic,assign) sum sumBlock;
3、使用block可以构建一个简单的回掉,下面是核心代码实现:
Button.h
@Class Button;
typedef (void) (^ButtonBlock) (Button *btn);
@interface Button : NSObject
@property (nonautomic,assign) ButtonBlock listenerBlock;
-(void) click;
@end
Button.m
@implementation Button
-(void)click{
_listenerBlock(self); //里面传递一个参数,此参数为Button对象本身。
}
@end
main.m
#import <Foundation/Foundation.h>
#import "Button.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
Button *btn =[[[Button alloc]init]autorelease];
btn.listenerBlock = ^(Button *btn){
NSLog(@"%@这个对象被点击了。");
};
[btn click];
}
return 0;
}
int (^sum) (int, int) = ^(int a, int b){
return a+b;
};
其中^是block的一个符;
2、还可以将block定义成一个typedef:
typedef (int) (^sum) (int,int);
@property (nonatuomic,assign) sum sumBlock;
3、使用block可以构建一个简单的回掉,下面是核心代码实现:
Button.h
@Class Button;
typedef (void) (^ButtonBlock) (Button *btn);
@interface Button : NSObject
@property (nonautomic,assign) ButtonBlock listenerBlock;
-(void) click;
@end
Button.m
@implementation Button
-(void)click{
_listenerBlock(self); //里面传递一个参数,此参数为Button对象本身。
}
@end
main.m
#import <Foundation/Foundation.h>
#import "Button.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
Button *btn =[[[Button alloc]init]autorelease];
btn.listenerBlock = ^(Button *btn){
NSLog(@"%@这个对象被点击了。");
};
[btn click];
}
return 0;
}
0 0
- Object-c: Block (方法块)
- object-c块(block)
- 黑马程序员-Object C之block 块
- Object-C中的Block代码块
- 【IOS】Object c 代码块-block阅读笔记
- Objective-C block (块)
- Object-C Block 基础
- Object-c block原理
- object-c block
- Object-c------block
- object c block
- Object-C Block详解
- object-c block问题
- Object-C中的Block
- Object-C block语法
- Object-C 块语法
- Objective-C block(代码块)
- Objective-C - 代码块block
- 数据结构——带头结点链表和不带头结点链表操作比较
- Jq获取动态生成元素
- 多线程编程--多线程间通信(五)
- [JAVA][2013蓝桥杯模拟赛 JAVA本科B组][第四题:二阶魔方]
- linux安装Cassandra数据库
- Object-c: Block (方法块)
- vison引擎中效果图形 - 体积锥体介绍
- 浮动布局
- 分割合并文件
- 小哈的世界是什么的呢?
- coco2d ClippingNode制作不规则血条
- PHP高效率写法(详解原因)
- centos安装mongodb
- I2C详细介绍