CoreFoundation框架详细解析(五) —— 多态函数
2018-02-01 本文已影响39人
刀客传奇
版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.02.01 |
前言
与Foundation框架不同的是,
Core Foundation
框架(CoreFoundation.framework)
是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能。接下来几篇我们一起重新审视和详细的看一下这个框架。感兴趣的可以看上面写的几篇。
1. CoreFoundation框架详细解析(一) —— 基本概览
2. CoreFoundation框架详细解析(二) —— 简介
3. CoreFoundation框架详细解析(三) —— 不透明类型
4. CoreFoundation框架详细解析(四) —— 对象引用
Polymorphic Functions - 多态函数
Core Foundation提供了几个多态函数。 这些函数可以将任何Core Foundation对象作为参数,并且(在一个实例中,CFRetain
)可以返回任何Core Foundation对象。 这些参数和返回值被赋予CFTypeRef
类型,一个通用的对象引用类型。 CFType
类似于面向对象语言中的根类,因为它的函数可以被所有其他对象重用。
对于所有Core Foundation对象通用的操作,都使用多态函数:
-
引用计数。
-
CFType
提供了几个多态函数来操作和获取对象的引用计数。有关这些功能的更多信息,请参阅 Memory Management Programming Guide for Core Foundation。
-
-
比较对象。
-
CFEqual
函数比较任意两个Core Foundation对象(请参阅Comparing Objects)。平等的基础取决于对象的类型。例如,如果两者都是CFString
对象,则测试涉及逐个字符的比较。
-
-
哈希对象。
-
CFHash
函数返回标识Core Foundation对象的唯一哈希码(请参阅Comparing Objects)。您可以使用哈希代码作为哈希表结构中的表地址。如果两个对象相等(由CFEqual
函数确定),则它们必须具有相同的哈希值。
-
-
检查对象。
-
CFType
为您提供了检查对象的方法,从而了解它们的内容以及它们所属的类型。CFCopyDescription
函数返回一个描述对象的字符串(更准确地说,是对CFString对象的引用)。使用CFTypeID
而不是CFTypeRef
参数的CFCopyTypeIDDescription
函数返回一个字符串引用,该引用描述由类型标识标识的不透明类型。这些函数主要是为了帮助调试;有关这些函数的更多信息,请参阅Inspecting Objects。
-
您还可以通过CFGetTypeID
函数获取其类型ID,然后将该值与已知类型ID进行比较,从而确定一般类型对象所属的不透明类型。有关此任务的更多信息,请参阅Inspecting Objects。
后记
本篇已结束,后面更精彩~~~