zoukankan      html  css  js  c++  java
  • 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;
    }

     

  • 相关阅读:
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    网站静态化处理—反向代理(10)
    网站静态化处理—满足静态化的前后端分离(9)
    网站静态化处理—前后端分离—下(8)
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4013880.html
Copyright © 2011-2022 走看看