CFDictionary返回null

时间:2011-07-14 23:53:52

标签: objective-c core-foundation

我第一次尝试使用Core Foundation,但我必须遗漏一些东西。 我试图使用NSObjects作为CFMutableDictionaryRef的键和值。

我有以下测试应用程序:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    NSString* key = @"testKey";
    NSObject* item = [[NSObject alloc] init];

    const CFDictionaryKeyCallBacks keyCB = kCFTypeDictionaryKeyCallBacks;
    const CFDictionaryValueCallBacks valCB = kCFTypeDictionaryValueCallBacks;

    CFMutableDictionaryRef dict = CFDictionaryCreateMutable(NULL, 0, &keyCB, &valCB);
    CFDictionaryAddValue(dict, item, key);
    NSLog(@"[CH] added = %@", CFDictionaryGetValue(dict, key));
    NSLog(@"[CH] size = %ld", CFDictionaryGetCount(dict));


}

输出:

  

2011-07-14 16:47:40.568 TestCoreFoundation [61343:903] [CH]添加=   (null)2011-07-14 16:47:40.578 TestCoreFoundation [61343:903] [CH]大小   = 1

1 个答案:

答案 0 :(得分:3)

您向后调用CFDictionaryAddValue。它是dict,key,然后是value:

CFDictionaryAddValue(dict, key, item);

除此之外,它看起来很好。

希望有所帮助。