WhiteEngine-专注图形渲染与游戏引擎技术的网站

新浪微薄腾讯微薄

最新碎语:暂无碎语

您的位置:WhiteEngine-专注图形渲染与游戏引擎技术的网站 >引擎相关> Unity OC String传递需要注意的地方

Unity OC String传递需要注意的地方

os 的native code 处理的字符串一般是NSString,要作为plugin返回给unity的话必须要转换成char *,并且要分配内存,因为mono会释放这个内存,否则会报错。


示范代码如下:


extern "C" {
    // Helper method to create C string copy
    
    char* MakeStringCopy (const char* string)
    {
        
        if (string == NULL)
            return NULL;
        
        char* res = (char*)malloc(strlen(string) + 1);
        
        strcpy(res, string);
        
        return res;
        
    }
    char* getOpenUDID(){

// By default mono string marshaler creates .Net string for returned UTF-8 C string 
// and calls free for returned value, thus returned strings should be allocated on heap

    return MakeStringCopy([[[NativeInteract sharedInstance] getOpenUDID] UTF8String]);
    }


}

---

转载请注明本文标题和链接:《Unity OC String传递需要注意的地方

分享到:

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交