gpt4 book ai didi

c++ - 如何将存储在 CFArrayRef 中的 CFStringRef 值检索到字符串数组/char *

转载 作者:太空狗 更新时间:2023-10-29 23:35:55 24 4
gpt4 key购买 nike

我是跨平台编程的新手。我在这里遇到一个问题,但由于在线帮助非常有限(或者可能是我不知道在哪里搜索),我找不到解决方案。

问题是:我想将 CFArrayRef 转换为 C++/C 中可用的格式我有一个 CFArrayRef,它以 CFStringRef 格式保存语言代码。我想在一些 std::vector 或 C++ char* 数组中检索它

最佳答案

假设您有一些 CFStringRef 的 CFArrayRef,那么你所要做的就是计算 vector 的元素数量,迭代 CFArrayRef,从中取出字符串并用它做任何你想做的事情,在示例代码中,我正在提取 CFArrayRef 的元素并将它们存储在 std::strings 的 std::vector 中。

这里说“names”是一个包含一些名字的CFArrayRef:

// Count of available names in ArrayRef
CFIndex nameCount = CFArrayGetCount( names );

std::vector<std::string> vecNames;

//Iterate through the CFArrayRef and fill the vector
for( int i = 0; i < nameCount ; ++i )
{
CFStringRef sName = (CFStringRef)CFArrayGetValueAtIndex( names, i );
strName = CFStringGetCStringPtr( sName , kCFStringEncodingMacRoman );
vecNames.push_back( strName );
}

关于c++ - 如何将存储在 CFArrayRef 中的 CFStringRef 值检索到字符串数组/char *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26030084/

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