我有代码(简体):

#define kSendBufferSize 32768
UInt8 listingBuffer[kSendBufferSize];
NSDictionary *currentListing;
CFIndex bufferLength;
CFDictionaryRef currentListingRef;
CFFTPCreateParsedResourceListing(kCFAllocatorDefault, listingBuffer, bufferLength, currentListingRef);
currentListing = (__bridge NSDictionary *) currentListingRef;


在最后一行,我在XCode中收到以下警告:

"Incompatible pointer types passing 'CFDictionaryRef' (aka 'const struct __CFDictionary *')
 to parameter of type 'CFDictionaryRef *' (aka const struct __CFDictionary **')"


问题是我需要声明不带指针的CFDictionaryRef,以便此行可以正常工作:(请参见Casting a CFDictionaryRef to NSDictionary?

currentListing = (__bridge NSDictionary *) currentListingRef;


提前致谢。

最佳答案

我通过另一个论坛找到了自己的答案。关键是在通过&传递CFDictionaryRef时使用CFFTPCreateParsedResourceListing运算符。例如:

CFFTPCreateParsedResourceListing(kCFAllocatorDefault, listingBuffer, bufferLength, &currentListingRef);

关于ios - 使用指针强制转换CFDictionaryRef?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7019514/

10-12 00:43