首页 > 编程语言 > 详细

Objective-C语言中的Block简介以及用法.

时间:2014-10-09 18:14:08      阅读:172      评论:0      收藏:0      [点我收藏+]

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简介以及用法.

原文:http://www.cnblogs.com/iOSCain/p/4013880.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!