版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2018.02.01 |
前言
與Foundation框架不同的是,
Core Foundation
框架(CoreFoundation.framework)
是一組C語言接口匀伏,它們?yōu)閕OS應用程序提供基本數(shù)據(jù)管理和服務功能。接下來幾篇我們一起重新審視和詳細的看一下這個框架兼搏。感興趣的可以看上面寫的幾篇症虑。
1. CoreFoundation框架詳細解析(一) —— 基本概覽
2. CoreFoundation框架詳細解析(二) —— 簡介
3. CoreFoundation框架詳細解析(三) —— 不透明類型
4. CoreFoundation框架詳細解析(四) —— 對象引用
Polymorphic Functions - 多態(tài)函數(shù)
Core Foundation提供了幾個多態(tài)函數(shù)。 這些函數(shù)可以將任何Core Foundation對象作為參數(shù)勇皇,并且(在一個實例中罩句,CFRetain
)可以返回任何Core Foundation對象。 這些參數(shù)和返回值被賦予CFTypeRef
類型敛摘,一個通用的對象引用類型门烂。 CFType
類似于面向對象語言中的根類,因為它的函數(shù)可以被所有其他對象重用兄淫。
對于所有Core Foundation對象通用的操作屯远,都使用多態(tài)函數(shù):
-
引用計數(shù)。
-
CFType
提供了幾個多態(tài)函數(shù)來操作和獲取對象的引用計數(shù)捕虽。有關這些功能的更多信息慨丐,請參閱 Memory Management Programming Guide for Core Foundation。
-
-
比較對象泄私。
-
CFEqual
函數(shù)比較任意兩個Core Foundation對象(請參閱Comparing Objects)咖气。平等的基礎取決于對象的類型。例如挖滤,如果兩者都是CFString
對象崩溪,則測試涉及逐個字符的比較。
-
-
哈希對象斩松。
-
CFHash
函數(shù)返回標識Core Foundation對象的唯一哈希碼(請參閱Comparing Objects)伶唯。您可以使用哈希代碼作為哈希表結構中的表地址。如果兩個對象相等(由CFEqual
函數(shù)確定)惧盹,則它們必須具有相同的哈希值乳幸。
-
-
檢查對象瞪讼。
-
CFType
為您提供了檢查對象的方法,從而了解它們的內(nèi)容以及它們所屬的類型粹断。CFCopyDescription
函數(shù)返回一個描述對象的字符串(更準確地說符欠,是對CFString對象的引用)。使用CFTypeID
而不是CFTypeRef
參數(shù)的CFCopyTypeIDDescription
函數(shù)返回一個字符串引用瓶埋,該引用描述由類型標識標識的不透明類型希柿。這些函數(shù)主要是為了幫助調(diào)試;有關這些函數(shù)的更多信息养筒,請參閱Inspecting Objects曾撤。
-
您還可以通過CFGetTypeID
函數(shù)獲取其類型ID,然后將該值與已知類型ID進行比較晕粪,從而確定一般類型對象所屬的不透明類型挤悉。有關此任務的更多信息,請參閱Inspecting Objects巫湘。
后記
本篇已結束装悲,后面更精彩~~~