Iphone cfDictionary创建[NSDictionary Dictionary WithObject…]的类似项

Iphone cfDictionary创建[NSDictionary Dictionary WithObject…]的类似项,iphone,objective-c,ipad,core-foundation,Iphone,Objective C,Ipad,Core Foundation,我正在寻找创建以下词典的方法 NSDictionary *frameProperties = [NSDictionary dictionaryWithObject:[NSDictionary dictionaryWithObject:[NSNumber numberWithInt:2]

我正在寻找创建以下词典的方法

    NSDictionary *frameProperties = [NSDictionary dictionaryWithObject:[NSDictionary 
                                                  dictionaryWithObject:[NSNumber numberWithInt:2] 
                                                                forKey:(NSString *) kCGImagePropertyGIFDelayTime]
                                     forKey:(NSString *) kCGImagePropertyGIFDictionary];
通过CoreFoundation,即使用
CFDictionaryCreate


有什么办法可以实现吗

看来我已经自己构造了答案,请确认某人。代码编译正常,但我还不能测试它

    int delayOnEachFrame = 2;
    const void *tkeys[1] = { kCGImagePropertyGIFDelayTime };
    const void *tvalues[1] = { CFNumberCreate(0, kCFNumberSInt32Type, &delayOnEachFrame) };
    CFDictionaryRef tframeProperties = CFDictionaryCreate(NULL, tkeys, tvalues, 1, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);

    const void *keys[1] = { kCGImagePropertyGIFDictionary };
    const void *values[1] = { tframeProperties };
    CFDictionaryRef frameProperties = CFDictionaryCreate(NULL, keys, values, 1, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);

你就不能把NSDictionary换成CFDictionary吗?当然不能,哈,那我的问题是什么意思?!我是用纯C++/C编写代码的……既然CF的核心是完全用Objective-C实现的,使用NS*类,为什么不能准确地进行转换?@bbum:Wha-ha?CF是用Cocoa类实现的?!我认为是另一种情况?很多人都这么认为,而且,在过去的一段时间里,这基本上是真的。但现在不是了!“完全”这个词太重了;很多是在ObjC中,很多是在C中。随着时间的推移,越来越多的内容转移到ObjC中。这基本上是正确的,尽管不要忘记内存管理。您需要释放
tvalues
中的
CFNumber
tframeProperties
,最终释放
frameProperties
。此外,如果只有一个键值对,则不需要创建实际的数组。你只需要创建一个单独的变量并将指针传递给它们。嘿,你知道swift的等价物吗?