首页 > 代码库 > Objective-C语言中的Block简介以及用法.
Objective-C语言中的Block简介以及用法.
Block语法是在iOS4.0的SDK 中开始新增的, 在那时就已经有了超过400多个API使用了Block语法.
Block对象又同样是继承与NSObject, 是C语言级别的语法和运行时特性. 和标准的C函数指针类似. 但其除了可执行语句外, 还可以类似对象可以保持状态数据.
和C语言的函数指针类似, 但不完全相同. 常用来作为回调函数使用.
Block和函数的操作符对比:
函数指针使用的是 ‘*’
Block使用的是 ‘^’
下面是例子:
apple.h文件
#import <Foundation/Foundation.h>@interface apple : NSObject@property (nonatomic, copy) void (^shuiguo1)(void); //定义一个Block, 且参数名为shuiguo1@property (nonatomic, copy) void (^shuiguo2)(void);@property (nonatomic, copy) void (^shuiguo3)(void);- (void)shuiguo;@end
apple.m文件
#import "apple.h"@implementation apple- (void)shuiguo{ if(_shuiguo1) //判断_shuiguo1是否为0 { NSLog(@"我是苹果"); } if(_shuiguo2) { NSLog(@"我是香蕉"); } if(_shuiguo3) { NSLog(@"我是橘子"); }}@end
main函数
#import <Foundation/Foundation.h>#import "apple.h"int main(int argc, const char * argv[]) { @autoreleasepool { apple *app = [[apple alloc]init]; //创建一个app对象 app.shuiguo1 = ^{ //打印一个shuiguo1的Bolck. NSLog(@"我是苹果"); }; app.shuiguo2 = ^{ NSLog(@"我是香蕉"); }; app.shuiguo3 = ^{ NSLog(@"我是橘子"); }; [app shuiguo]; //调用shuiguo的方法 } return 0;}
Objective-C语言中的Block简介以及用法.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。