簡體   English   中英

在Objective-C中使用ARC轉換C ++類型

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM