您的当前位置:首页正文

CoreFoundation框架详细解析(四) —— 对象引用

来源:华拓网

版本记录

版本号 时间
V1.0 2018.02.01

前言

Object References - 对象引用

您可以通过引用来引用Core Foundation对象(不透明类型)。 在不透明类型的每个头文件中,您会注意到一行或两行类似于以下内容:

typedef const struct __CFArray * CFArrayRef;
typedef struct __CFArray * CFMutableArrayRef;

诸如这些的声明是指向定义不透明类型的(私有)结构的不可变和可变版本的指针引用。 许多Core Foundation函数的参数和返回值都采用这些对象引用的类型,而不是私有结构的typedef。 例如:

CFStringRef CFStringCreateByCombiningStrings(CFAllocatorRef alloc, CFArrayRef array, CFStringRef separatorString);

每个Core Foundation不透明类型为其对象定义唯一的类型ID,如上面CFArray对象的CFArrayRef所示。 类型ID是CFTypeID类型的整数,用于标识Core Foundation对象所属的不透明类型。您可以在各种上下文中使用类型ID,例如在异构集合上操作时。 Core Foundation提供编程接口来获取和评估类型ID。

重要提示:因为类型ID的值可能会随发行版本而变化,所以您的代码不应该依赖于存储或硬编码的类型ID,也不应该对类型ID的任何观察属性进行硬编码(例如, 是一个小整数)。

后记

本篇已结束,后面更精彩~~~