Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting values from a CFDictionary

I'm trying to access the values from a CFDictionary. I've started by implementing code suggested in this question:

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

I have looked at the documentation plus other posts, but it's a bit beyond me how to work it.

What I really need is some example code that takes the code I already have and uses it to print a string of, for example, "Current Capacity".

like image 645
Eric Brotto Avatar asked Jul 07 '10 13:07

Eric Brotto


1 Answers

CFDictionaryRef is "toll free bridged" with NSDictionary. This means you can cast one to the other interchangeably. In other words:

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

If (for some reason) you need to stay at the CoreFoundation level (which isn't unheard-of), you'd use something like CFDictionaryGetValue().

like image 64
Dave DeLong Avatar answered Oct 07 '22 07:10

Dave DeLong