2010-07-07 7 views
5

Objective-C 프로그래밍을 처음 접했고 도움이 될지 궁금해졌습니다.CFDictionary에서 값 가져 오기

CFDictionary에서 값에 액세스하려고합니다. 내가 코드를 구현하여 시작했습니다는 this question

CFTypeRef r = IOPSCopyPowerSourcesInfo(); 
CFArrayRef array = IOPSCopyPowerSourcesList(r); 
CFDictionaryRef powerDic = IOPSGetPowerSourceDescription(array, r); 

에서 제안하고 나는 문서 플러스 other posts 보았다,하지만 그것을 작동하는 방법을 나를 넘어 비트입니다.

내가 정말로 필요로하는 코드는 이미 가지고있는 코드를 가져 와서 "Current Capacity"와 같은 문자열을 출력하는 예제 코드입니다.

어떤 도움이 필요합니까?

답변

11

CFDictionaryRefNSDictionary으로 "수신자 부담 브리지"입니다. 즉, 하나를 다른 것으로 교환 할 수 있습니다. 즉 :

... 
NSDictionary * powerDic = (NSDictionary *)IOPSGetPowerSourceDescription(array, r); 
NSString * aValue = [powerDic objectForKey:@"aKey"]; 

당신은 (하지 전대 미문의 임) CoreFoundation에서 수준에서 유지해야하는 (어떤 이유로), 당신은 CFDictionaryGetValue() 같은 것을 사용하세요.

+0

안녕하세요 Dave, 내게 너무 빨리 돌아와 주셔서 감사합니다. 나는 IOPSKeys.h에서 키를 사용하여 코드를 구현하려하고 (널) 응답있어 : \t있는 NSDictionary * 파워딕 = (있는 NSDictionary *) IOPSGetPowerSourceDescription (배열, r)을; \t NSString * aValue = [powerDic objectForKey : @ "최대 용량"]; \t 이 작품을 만드는 방법에 관해 구체적으로 알려주시겠습니까? 또한 CFDictionaryGetValue()는 NSDictionary보다 더 신비한 것입니다. 따라서 사용법에 대한 간단한 예제 코드가 있다면 정말 멋지 겠지요. 모든 것에 대해 다시 한 번 감사드립니다! ;) Eric –

+0

@Eric 만약'aValue'가'nil'이라면, 키가 사전에 존재하지 않거나 사전 자체가'nil'입니다. 'CFDictionaryGetValue()'에 관해서는 함수의 첫 번째 매개 변수는'CFDictionaryRef'이고 두 번째 매개 변수는 키이고 반환 값은 값입니다. –

+0

도움에 감사드립니다. 내 사전이 어떤 이유에서든 무효라는 인상을 받고 있습니다. 나는 그것을 조사 할 것이다. , offhand, 이것이 어떤 이유인지 생각할 수 있다면, 나는 모든 귀입니다.) 다시 한번 감사드립니다! –