gpt4 book ai didi

c++ - 创建不可变的 CFArray 对象 - Apple 示例不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:41 26 4
gpt4 key购买 nike

为了测试,我复制了以下示例代码 [ https://developer.apple.com/library/ios/documentation/CoreFoundation/Conceptual/CFCollections/Articles/creating.html]并编译它:

#import <CoreFoundation/CoreFoundation.h>

CFStringRef strs[3];
CFArrayRef anArray;

strs[0] = CFSTR("String One");
strs[1] = CFSTR("String Two");
strs[2] = CFSTR("String Three");

anArray = CFArrayCreate(NULL, (void *)strs, 3, &kCFTypeArrayCallBacks);

现在我得到以下错误:“没有匹配函数调用 CFArrayCreate”

为什么不可编译,如何实现可编译?

最佳答案

CFArrayCreate()的第二个参数的类型是const void **。因此,将调用更改为:

anArray = CFArrayCreate(NULL, (const void **)strs, 3, &kCFTypeArrayCallBacks);

这实际上只是 C++ 中的一个问题,因为它对与 void* 之间的转换要严格得多。在 C 中,void* 可以自由转换为其他指针类型。

关于c++ - 创建不可变的 CFArray 对象 - Apple 示例不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29385383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com