Swift应用程序到Mono的可选链接

问题描述

我正在使用Mono将一些C#代码集成到Swift应用程序中。这工作正常,但我想使该集成成为可选。因此,我将Xcode中的Mono.framework链接更改为可选,并确认这是链接器命令行中的结果。

现在,我的问题是如何检查Mono.framework是否真正可用?我只看到了检查Objective-C类的示例,但没有一个涉及标准C函数可用性的示例。

解决方法

我通过使用一些C代码找到了解决方案:

extern void mono_jit_init (const char *file) __attribute__((weak_import));

int isMonoAvailable(void)
{
    return mono_jit_init != NULL;
}

以及桥接头中包含的该函数的头:

extern int isMonoAvailable(void);

完成上述操作后,我可以从Swift打电话来检查可用性:

  if isMonoAvailable() {
    // do something with Mono
  }

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...