2011-05-20 59 views
0

我正在使用CFDictionary进行维护list.I添加了一些值后添加值的值,检查是否添加的键包含在字典中,它返回true.But如果我尝试获取值它返回null.How检查我在哪里错过了?添加值不包含在CFDictionary C++中?

//Create Dictionary 
    CFMutableDictionaryRef fileInfo = CFDictionaryCreateMutable(NULL,0,NULL,NULL); 

    //add Value 
    CFDictionaryAddValue(fileInfo, CFSTR("filename"),getstring((uint8_t*)buffer,&offset)); 

    int size = CFDictionaryGetCount(fileInfo); 
    //Return 1; 

    if(CFDictionaryContainsKey(fileInfo,CFSTR("filename"))) // return true 
    { 
     const void* filename = CFDictionaryGetValue(fileInfo, CFSTR("filename")); 
     if(filename) // return null 
     { 
     } 

    } 

请帮帮我。

+0

为什么使用'CFMutableDictionaryRef'而不是简单的'NSMutableDictionary'?就是想… – 2011-06-07 16:42:02

回答

0

我想你在创建字典的时候需要pass some callbacks否则字典的行为可能不是你所期望的。

此外,请确保getstring()不返回NULL。