将NSString转换为char *并返回时,Unity3d会卡住

时间:2015-06-05 08:20:59

标签: c# objective-c macos plugins unity3d

我有一个功能

char* OpenFolderDialog()
{
    NSOpenPanel* openDlg = [NSOpenPanel openPanel];
    [openDlg setCanChooseFiles:YES];
    [openDlg setAllowsMultipleSelection:NO];
    [openDlg setCanChooseDirectories:YES];
    [openDlg setCanChooseFiles:NO];   

    if ([openDlg runModal] != NSFileHandlingPanelOKButton) return nil;

    NSString *url = [[openDlg URLs] lastObject];
    return (char*)[url UTF8String];
}

当我在Unity3d中调用它时,我的应用程序挂断了。如果我硬编码NSString变量并使用相同的return语句返回它,它可以正常工作。 我还把这个网址放在一个警告框中,然后显示它并且它完美无缺。因此将url返回到Unity3d代码时存在一些问题。

有什么想法吗?

0 个答案:

没有答案