作者donkeychen (Bad_To_The_Bone)
看板MacDev
标题[问题] CFDictionaryRef 转换成 CFString 问题
时间Mon Apr 7 17:14:43 2014
大家好
我现在在看别人写的code
程式中有一部分是使用c将一些资料以CFDictionaryRef格式储存
参考CFDictionaryRef的说明
https://developer.apple.co1m/library/mac/documentation/
corefoundation/Reference/CFDictionaryRef/Reference/reference.html
并参考别人的用法
http://pastebin.com/qAtbBraA
const void * keys;
const void * values;
CFDictionaryGetKeysAndValues(cfdref, &keys, &values);
for (int i = 0 ; i < CFDictionaryGetCount(cfdref); i++)
{
CFStringRef x = (CFStringRef)&keys[i];
CFStringRef y = (CFStringRef)&values[i];
}
在for 回圈里面的两个assign都会出现下述错误
Subscript of pointer to incomplete type 'const void'
想请教一下 该怎麽写才是正确的把CFDictionaryRef的key与value
转成CFStringRef的方式呢
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 210.59.147.226
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MacDev/M.1396862087.A.646.html
1F:→ atst2:跑过了很正常...我想你可能只是拚错字之类的错误吧? 04/07 18:43
2F:→ atst2:要不要再检查一下? 04/07 18:43
3F:→ uranusjr:CFDictionaryGetKeysAndVlues <-- 最後面少一个 a XD 04/07 22:16
阿 我key来PTT时打错^^;
4F:→ donkeychen:QQ 奇怪; xcode会跳红色错误 04/08 09:46
後来改成
CFIndex count = CFDictionaryGetCount(cfdref);
const CFStringRef* pname = new CFStringRef[count];
const CFStringRef* pvalue = new CFStringRef[count];
CFDictionaryGetKeysAndValues(cfdref, (const void**)pname, (const void**)pvalue);
for (CFIndex i = 0; i < count; i++)
{
CFStringRef x = pname[i];
CFStringRef y = pvalue[i];
}
delete[] pname;
delete[] pvalue;
才compile过...
(compiler是GCC 4.2 xcode4.02 4a2002a)
有解决了 感谢大家:)
※ 编辑: donkeychen (210.59.147.226), 04/08/2014 09:53:19
5F:→ atst2:手边没有xcode4, 不过xcode5用clang是ok的 04/08 10:18
6F:→ atst2:不太能确定是否是编译版本的差异造成的. 04/08 10:19
7F:→ donkeychen:恩恩 感谢 ^^ 04/08 15:15