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

原创 2016年08月29日 09:33:06

代码块

前言

大多书本上的代码块讲解非常的累赘和复杂,其实代码块我们可以把它理解为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
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

OC学习日记017(二)从网络下载图片放到UI界面

NSURL的应用与编码步骤:我们下载图片时,其实只需要先获取图片相对应的URL,然后通过NSDATA类型的方法去获取(下载)图片的数据,就可以得到我们要的图片了。 第一步:这里我们要去Main.sto...

JAVA基础第六天学习日记_static关键字、文档、静态代码块、单例开发模式

---------------------- android培训、java培训、期待与您交流! ---------------------- 静态变量,方法函数存放在方法区。 静态变量...

黑马程序员——OC基础学习(五)---分类(Category),代码块Block和protocol代理设计模式

分类(Category),代码块Block和protocol代理设计模式知识总结

第十四篇:OC中block存储代码块的定义与应用

1.如何定义block变量,形式:返回值类型 (^block变量名)(参数) 》形式一求和的block变量: int (^sumBlock)(int , int ) ; 》形式二:void (^voi...

OC_语法入门_day6_ARC(循环引用)/block代码块(闭包)/protocol协议(接口)/代理模式

H:/Objective-C/OC_day6/01-arc的基本使用-0-Dog.h/* 作者:MJ 描述: 时间: 文件名:Dog.h */ #import @interface Do...

iOS开发-Day23-OC设计模式&代码块

1、单例模式 实现单例模式有三个条件1、类的构造方法是私有的 2、类提供一个类方法用于产生对象 3、类中有一个私有的自己对象 那么在OC中如何实现这3点呢:1、类的构造方法是私有的 我们只需要重...

转载:OC中的代码块block

转载自:http://www.cnblogs.com/zhw511006/archive/2011/11/29/2267925.html 在ios4之后,引入了代码块的特性,在gcd...

OC-代码块的运用

/**  *  代码块  *把一段代码当做一个变量用  *button.onClick=代码块;  * 动态决定执行的代码  */ //1.block的类型:返回值,参数类型 //a+a...

第二期代码块材料

  • 2012-08-12 22:34
  • 165KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)