0

나는이 같은 AVCaptureDevice를 사용하여 캡처 이미지의 EXIF ​​첨부 파일을 얻기 위해 노력하고 있어요 :NSMutableDictionary와 CFDictionaryRef의 차이점은 무엇입니까?

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

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

모두 같은 결과를 반환하는 것은 NSMutableDictionary의 하나의 유형을 캐스팅 __bridge을 필요로하지만. 그들 사이의 차이점은 무엇입니까? 어떤 것을 사용해야합니까?

답변

1

처음에 CFDictionaryRef은 변경 가능하지 않지만 NSMutableDictionary은 변경 가능 (수정 가능)합니다.

다른 것으로 교체 할 수 없습니다. 그러나 CFMutableDictionaryRefNSMutableDicionary으로 변환 할 수 있으며 해당 변환은 수신자 부담 브리징 변환입니다. CFDictionaryRef의 경우 해당 객체는 NSDicionary입니다.

순수 C/C++을 사용하여 프로그램을 작성하는 경우 Core Foundation의 CFDicionary을 사용하십시오. Objective-C의 경우 두 가지를 모두 사용할 수 있습니다.

아래 링크를 클릭하면 도움이됩니다.

Relationship between CFMutableDictionary and NSMutableDictionary

NSMutableDictionary vs CFMutableDictionary

관련 문제