CoreFoundation框架详细解析(五) —— 多态函数

版本记录

版本号 时间
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对象通用的操作,都使用多态函数:

  • 引用计数。

  • 比较对象。

    • 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

后记

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容