Block笔记(1) 您所在的位置:网站首页 block是指什么代码 Block笔记(1)

Block笔记(1)

2024-07-11 11:53| 来源: 网络整理| 查看: 265

Block系列文章—————————————

Block笔记(1)—— 基本认识 Block笔记(2)—— 底层结构 Block笔记(3)—— 基础类型的变量捕获 Block笔记(4)—— Block的类型 Block笔记(5)—— 对象类型的auto变量捕获 Block笔记(6)— __block的深入分析

————————————————————

Block是什么

通俗的理解:Block就是将一些代码封装起来,以便在将来某个时候被使用,如果你不去调用Block,Block内部封装的代码就不会执行。举一个简单的例子,下面在main函数中定义一个最简单的Block

int main(int argc, const char * argv[]) { @autoreleasepool { ^{ NSLog(@"I am a block!"); NSLog(@"I am a block!"); NSLog(@"I am a block!"); NSLog(@"I am a block!"); }; return 0; } ********************** 运行结果 ************************ Program ended with exit code: 0

运行程序运行可以看到Block内的代码是没有运行的,因为没有调用。Block的使用也很简单,可以像函数一样被使用。加上()就代表调用,如下

int main(int argc, const char * argv[]) { @autoreleasepool { ^{ NSLog(@"I am a block!"); NSLog(@"I am a block!"); NSLog(@"I am a block!"); NSLog(@"I am a block!"); }(); return 0; } ********************** 运行结果 ************************ 2019-05-28 17:18:56.992746+0800 Interview03-block[2640:180864] I am a block! 2019-05-28 17:18:56.992924+0800 Interview03-block[2640:180864] I am a block! 2019-05-28 17:18:56.992939+0800 Interview03-block[2640:180864] I am a block! 2019-05-28 17:18:56.992947+0800 Interview03-block[2640:180864] I am a block! Program ended with exit code: 0

如果上面写的太简练不习惯的话,通常大家可能是这么写

int main(int argc, const char * argv[]) { @autoreleasepool { void (^testBlock)(void) = ^{ NSLog(@"I am a block!"); NSLog(@"I am a block!"); NSLog(@"I am a block!"); NSLog(@"I am a block!"); }; testBlock(); *****


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有