[英]Casting C++ types with ARC in objective-c
遇到以下情况:
我使用第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(aka 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);
按预期工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.