我有代码(简体):
#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, ¤tListingRef);
关于ios - 使用指针强制转换CFDictionaryRef?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7019514/