복사되지 않은 키가있는 사전에 대한 요구 사항이 있습니다. 이것은 명랑한 춤을 추며 CFMutableDictionary의 문을 닫았습니다.NSMutableDictionary 대 CFMutableDictionary
나는 서로 교환 할 수있는 범위를 이해하려고 노력하고 있습니다. CFMutableDictionary 애플의 문서에서 그들은 상태 :
당신이 NSMutableDictionary * 매개 변수를 참조하는 방법에, 당신이 CFMutableDictionaryRef 매개 변수를 참조 CFMutableDictionaryRef에서 패스, 그리고 함수에서, 당신은에 전달할 수 있습니다 NSMutableDictionary 인스턴스
는하지만 NSMutableDictionary에 CFMutableDictionary 캐스팅과에 NSMutableDictionary의 메소드를 호출 할 수있을 것인지 궁금, 그것은 당신이 할 수있는 경우에 보인다;
CFDictionaryCreateMutable()을 사용하여 CFMutableDictionary를 만들고 NSMutableDictionary로 캐스팅합니다. 나는 또한 호출 할 수 있습니다
[cfDictionaryCastToNSDictionary objectForKey:someKey]
을 :
나는 호출 할 수 있습니다
[cfDictionaryCastToNSDictionary setObject:someObject forKey:someKey]
... 키를 복사하거나 NSCopying 구현하지 않을 경우 예외를 발생 것이다. for 루프를 사용하여 값을 반복 할 수도 있습니다.
나는 전화 그러나 경우 :
[cfDictionaryCastToNSDictionary count]
나는 예외를 얻을.
내 질문에 정확히 무슨 일이 일어나고 있습니까? 어떤 시점에서 애플 문서는 NSDictionary로 캐스팅하여 CFMutableDictionary에 존재하지 않는 몇 가지 메소드를 호출 할 수 있다고 언급합니다.
데스크톱 코코아를 타겟팅하는 경우 'NSPointerArray'를 확인하십시오. –
어떤 예외가 있습니까? 'count '를 호출하면 정상적으로 작동합니다. – DarkDust
불행히도 저는 모바일을 목표로 삼고 있습니다. 나는 NSPointerArray와 같은 것이 없다는 것에 놀랐다. – Undistraction