簡體   English   中英

NSMutableDictionary和CFDictionaryRef有什么區別?

[英]What is the difference between NSMutableDictionary and CFDictionaryRef?

我正在嘗試從使用AVCaptureDevice捕獲的圖像中獲取EXIF附件,如下所示:

CFDictionaryRef exifAttachments = (CFDictionaryRef)CMGetAttachment(buf, kCGImagePropertyExifDictionary, NULL);

NSMutableDictionary *exifAttachment = (__bridge NSMutableDictionary*)CMGetAttachment(buf, kCGImagePropertyExifDictionary, NULL);

兩者似乎都返回相同的結果,盡管NSMutableDictionary需要使用__bridge__bridge轉換類型。 它們之間有什么區別? 我什么時候應該使用哪個?

首先, CFDictionaryRef是不可變的,而NSMutableDictionary是可變的(可以修改)。

您不能用一個替換另一個。 但是, CFMutableDictionaryRef可以轉換為NSMutableDicionary並且該轉換是免費的橋接轉換。 對於CFDictionaryRef ,等效對象是NSDicionary

如果您使用純C / C ++編寫程序,請使用Core Foundation的CFDicionary 對於Objective-C,您可以同時使用。

這些鏈接下面的內容可以為您提供幫助。

CFMutableDictionary和NSMutableDictionary之間的關系

NSMutableDictionary和CFMutableDictionary

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM