有沒有簡單的方法將CTypeRef
轉換爲特定的CoreFoundation類型?我不想將內聯投影爲(CFStringRef)myObjectRef
,但希望爲我爲所有CoreFoundation類型創建一個幫助器方法。將基本CFTypeRef投射到更具體的CoreFoundation類型
我知道有可能使用類似CFGetTypeID(myObjectRef) == CFStringGetTypeID()
的東西來確定CTypeRef
是否爲CFString
。然而,創建一個單一的方法來做到這一點可能會變得非常冗長,並且會有很多if語句。
正在用一堆if語句構建一個方法反對CFGetTypeID()
的唯一方法?還是有更簡單的方法來做到這一點?
UPDATE:與例如
我想打一個輔助函數的一些遺留代碼,我不能改變工作。目前它產生CFDictionaryRef
,CFStringRef
或CFURLRef
之一作爲CTypeRef
提供的返回值。我目前通過在返回的值上運行CFGetTypeID()
來解決這個問題,但這並不理想。我寧願有一個幫助我處理這個問題的助手,而不是在所有地方都使用C風格。這將有助於未來更輕鬆地進行測試。
P.S.我並不擔心可變類型。
我已經添加了一個應該幫助的例子。 – KushalP
@KushalP更新 – justin