2013-03-04 59 views
0

解析CFMutableDictionary鍵

它的工作原理,我回來:

{ "9dc7b780-9ec0-11d4-a54f-000a27052861" = "IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"; }

但接下來我需要做的只是得到如下部分:9dc7b780-9ec0-11d4-a54f-000a27052861

任何人都可以幫助我解決這個問題嗎?

回答

0

這裏CFDictionaryGetValue正在返回CFDictionaryRef類型的另一個對象(而不是你鍵入的字符串)。所以「9dc7b780-9ec0-11d4-a54f-000a27052861」是該字典中的關鍵。你應該像下面這樣做:

CFTypeRef sn = (CFTypeRef)CFDictionaryGetValue(child_props, CFSTR("IOCFPlugInTypes")); 
if (CFDictionaryGetTypeID() == CFGetTypeID(sn)) 
{ 
    int dictSize = CFDictionaryGetCount(sn); 
    CFStringRef * keys = (CFStringRef*)malloc (dictSize * sizeof (CFStringRef)); 
    CFDictionaryGetKeysAndValues (sn, keys, NULL); 
    for (int i = 0; i < dictSize; i++) 
    { 
     CFShow(keys[i]); 
    } 
}