简述block 是类吗?有哪些类型? ?
参考答案:
Block不是类,而是一种比较特殊的数据类型。它可以保存一段代码,在合适的时候取出来调用。在iOS开发中,Block被广泛使用,它的本质类似于匿名函数(没有名称的函数),是C语言后期扩展版本中加入的特性。
Block主要有三种类型:堆Block、栈Block和全局Block。这三种类型的Block遵循以下原则:
- 如果Block没有使用外部变量,或者只使用静态变量和全局变量,那么它一定是全局Block。
- 如果Block使用了外部变量,并且这些变量不是静态或全局的,那么Block的类型取决于它被赋值的引用类型。如果赋值给强引用,那么它是堆Block;如果赋值给弱引用,那么它是栈Block。
总的来说,Block作为一种数据类型,具有独特的特性和使用方式,在iOS开发中扮演了重要的角色。通过理解和掌握Block的概念、基本使用以及类型,可以更有效地进行iOS应用的开发和优化。