gpt4 book ai didi

c++ - 在 objective-c 中使用 ARC 转换 C++ 类型

转载 作者:太空宇宙 更新时间:2023-11-04 11:45:47 25 4
gpt4 key购买 nike

偶然发现了以下情况:

我使用第 3 方 C++ 库。

lib 的标题:

#define lib_fname               char 
typedef lib_fname* lib_l_fname;

Function(lib_l_fname name);

我的代码(我需要调用那个函数):

Function ((lib_l_fname)[@"name" UTF8String]);

这在非 ARC 项目中有效,但在 ARC 中我有一个错误 - “ARC 不允许强制转换指向 lib_l_fname(又名 char*)的 Objective-C 指针”

我试过了

  Function ([@"name" UTF8String]);

但是没有用。有解决办法吗?

最佳答案

找到解决方案:

用 arc 编译更严格,在尝试将 const char* 转换为 char* 时会出错。

解决方案是创建第二个字符串 char* 并在那里进行 strcpy [@"name"UTF8String]

 char str2[1024] = {0};
strcpy(str2, [@"name" UTF8String]);

Function ((lib_l_fname)str2);

按预期工作

关于c++ - 在 objective-c 中使用 ARC 转换 C++ 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19901477/

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