将 CFDictionaryRef 转换为 NSDictionary?
我有代码(精简):
CFDictionaryRef *currentListingRef;
//declare currentListingRef here
NSDictionary *currentListing;
currentListing = (NSDictionary *) currentListingRef;
然后我收到错误:
非 Objective-C 指针类型“CFDictionaryRef *”(又名“const”)的转换 ARC 不允许将 struct __CFDictionary **') 转换为 'NSDictionary *'
我做错了什么?如何从 CFDictionaryRef
转换为 NSDictionary
?
I have the code (stripped down):
CFDictionaryRef *currentListingRef;
//declare currentListingRef here
NSDictionary *currentListing;
currentListing = (NSDictionary *) currentListingRef;
And then I get the error:
Cast of a non-Objective-C pointer type 'CFDictionaryRef *' (aka 'const
struct __CFDictionary **') to 'NSDictionary *' is disallowed with ARC
What am I doing wrong? How do I convert from a CFDictionaryRef
to an NSDictionary
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
ARC 改变了桥接的工作方式。
ARC changed the way bridging works.
在 ARC 中,应该这样做:
这会释放 CF 对象并将该对象的所有权转移给 ARC
否则你应该手动释放CF对象。
In ARC, this should be done this way:
This releases the CF object and transfers ownership of the object to ARC
otherwise you should release CF object manually.
试试这个代码,
Try this code,