美文网首页
Block(块)介绍之一:Block简介

Block(块)介绍之一:Block简介

作者: 赵亦晨 | 来源:发表于2016-10-22 01:45 被阅读0次

前言:block是从iOS4开始引入的一个新特性,block是对C语言的一个扩展,在Objective-C中完全支持。block在现在的iOS开发中越来越普遍,因为block在使用起来非常强大,简单来说,block就是封装了一组代码语句的对象,可以在任何时间执行。

1、Block简介

Block块是封装工作单元的对象,是可以在任何时间执行的代码段。其本质上是可移植的匿名函数,可以作为方法和函数的参数传入,可以从方法和函数中返回。—(翻译自官方文档)

块是对C语言的一种扩展,它并未作为标准的ANSI C所定义的部分,而是有苹果公司添加到语言中的。块看起来更像是函数,可以给块传递参数,块也可以具有返回值。

2、Block的定义与调用

块是以插入字符^开头,后面的一个括号()内表示块所需要的参数,最后面的大括号{}中是块主体,最后以分号;结束。如下面代码所示:

^(intinputNum){

NSLog(@"printBlock Called!");

returninputNum;

};

同时,也可以将这个块赋值给一个变量printBlock,声明方式如下。其中,变量printBlock就是指向代码块的指针。

int(^printBlock)(int)=^(intinputNum){

NSLog(@"printBlock Called!");

returninputNum;

};

当需要调用已经定义的block时,可以使用如下方式,和函数调用十分类似。

inti=printBlock(100);

3、把Block声明为类的属性

由于Block就是一个存储了一段代码的对象,因此,也可以把Block设置为某个类的属性。同时,可以用self.blockProperty来给该属性赋值。

@interfaceViewController()

@property(copy)void(^blockProperty)(void);

@property(copy,nonatomic)void(^blockPropertyWithInput)(int);

@end

-(void)viewDidLoad{

[superviewDidLoad];

//blockProperty

self.blockProperty=^{

NSLog(@"blockProperty is called!");

};

self.blockProperty();

//blockPropertyWithInput

self.blockPropertyWithInput=^(inti){

NSLog(@"blockPropertyWithInput is Called! I Value is %d",i);

};

self.blockPropertyWithInput(150);

}

相关文章

  • Block(块)介绍之一:Block简介

    前言:block是从iOS4开始引入的一个新特性,block是对C语言的一个扩展,在Objective-C中完全支...

  • Block

    Block概念介绍 block是一段代码块,是一个对象 Block的声明 Block的定义 Block的快捷定义:...

  • [iOS]block详解

    1、block简介 block字面意思就是代码块 iOS4.0 Apple引入的特性 block是Objectiv...

  • iOS-Block 浅谈

    前言:Block 是开发过程中常用便捷的回调方式,本文简单介绍 Block 一、Block 简介 Block 对象...

  • OC底层面试知识点之 —— Block底层原理!

    本文将介绍block的类型,循环引用的解决方法以及block底层分析 Block简介 Block定义:带有自动变量...

  • iOS开发学习笔记----objective-c之block初探

    Block介绍 Block是一个匿名的函数代码块,此代码块可以当做参数传给其他对象。 Block与代理协议的功能一...

  • 全局块、栈块及堆块

    栈块 void (^block)(); if(){ block = ^(){ NSLog(@"block a"...

  • block的使用和注意

    iOS学习-(1)block的使用和注意 本文简介 本文主要介绍1.block的基本使用 ...

  • iOS笔记--Block相关知识

    Block介绍(一)基础Block介绍(二)内存管理与其他特性block介绍(三)揭开神秘面纱(上)block介绍...

  • Block

    Block介绍 截获变量 __block修饰符 Block的内存管理 Block的循环引用 一、Block介绍 1...

网友评论

      本文标题:Block(块)介绍之一:Block简介

      本文链接:https://www.haomeiwen.com/subject/gyncuttx.html