[英]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.