OC学习日记017(一)代码块

代码块

前言

大多书本上的代码块讲解非常的累赘和复杂,其实代码块我们可以把它理解为C里面的函数,就是把一些代码封装起来,使它们可以模块化使用。

代码块(block)的声明与实现

代码块的作用

block 允许开发者在两个对象之间任意语句当作数据进行传递

 block 使用了与一个函数相同的机制,可以像声明一个函数一样来声明block;可以像定义一个函数的方法一样来定义一个block,也可以讲block当做对象来调用

代码块的声明:

 返回值类型(^代码块的名称)(参数列表);

代码块的实现:

 代码块的名字 =^(参数列表)(代码块的行为主体)     
    //代码块的声明:
    void(^aBlock)(NSString *x);
    //代码块的实现:
    aBlock = ^(NSString *x){
        NSLog(@"x = %@",x);
    };
    //代码块的调用
    aBlock(@"Rick");    
    double(^getArea)(double width, double height);
    getArea = ^(double width, double height){
        double area=width*height;
        return area;
    };
    double area = getArea(5,10);
    NSLog(@"area =%.2f",area);

在block中使用全局变量和局部变量

全局变量和局部变量的作用在于我们想要调用一个在某个方法或循环、函数里面的一个变量时,我们可以根据需要将它定义为全局或局部变量,使它可以在方法执行完毕后仍然可以被调用。
#import "ViewController.h"
@interface ViewController ()
@end
int global =100;
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    //void(^myBlock)()
    //myBlock =^(){};
    //等价于
    void(^myBlock)()=^(){
        global++;
        NSLog(@"global = %d",global);
    };
    myBlock();
    //局部变量
    __block int local =100;
    void(^myBlock2)()=^(){
        local++;
        NSLog(@"local = %d",local);
    };
    myBlock2();
    }
@end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值