Block 是 Objective-C 中一种强大的功能,它允许你将代码块作为参数传递给方法。这种特性在处理回调、异步编程等方面非常有用。

什么是 Block?

Block 是一个轻量级函数,它可以直接存储在变量中,或者作为参数传递给其他函数。它允许你在函数外部定义代码块,并在需要时执行这些代码。

Block 的语法

^ (返回类型) (参数列表) {
    // 代码块内容
}

示例

void (^myBlock)(int) = ^{
    NSLog(@"Received: %d", argument);
};

Block 的特性

  • 自动变量捕获:Block 会捕获它创建时所在作用域内的变量。
  • 循环引用:如果 Block 捕获了循环引用,可能会导致内存泄漏。可以使用 __weak__block 关键字来避免这个问题。

Block 的使用场景

  • 回调函数:在异步操作中,使用 Block 作为回调函数,以便在操作完成后执行特定的代码。
  • 事件处理:在 UI 界面中,使用 Block 来处理事件,例如按钮点击事件。

相关资源

更多关于 Block 的内容,您可以阅读 Objective-C Block 深入理解

Block 示例