block详解
Objective-C 中 Block 有三种类型:
struct Block_layout{ ? ? ? ? void *isa;//指向表明该block类型的类 ? ? ? ? ?int flags;//按bit位标示一些的block的附加信息,比如判断block类型、判断block引用计数、判断block是否需要执行辅助函数等。 ? ? ? ? ?int reserved;//保留变量 ? ? ? ? ?void (* invoke)(void *,...);//函数指针,执行具体的block实现的函数调用地址。 ? ? ? ? ?struct Block_descriptor ?*descriptor;//block的附加信息,比如保留变量数,block的大小,进行copy活dispose得辅助函数指针。 ? ? ? ? ?/*Imported variables*/ //因为block有比暴行,所以可以访问block外部的局部变量。这些variables就是复制到结构体中的外部局部变量或变量的地址。? }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |