我正在构建一个iOS应用程序扩展(本例中是一个音频单元插件)。代码是Objective-C、C++和C文件的混合。
当我在主机上运行我的音频单元的一个实例时,它工作得很好,但是一旦我打开另一个实例,两个实例就开始相互干扰。似乎这两个实例都意外地在它们之间共享了一些变量,我怀疑这是在我正在使用的C库中发生的。
我在.m文件中使用了大量“静态”声明变量,以确保它们具有文件作用域。我假设扩展的每个实例也将拥有每个静态变量的自己的实例,即使它们是在C库中声明的,这是正确的吗?或者在这种情况下使用C是一个糟糕的架构选择?
发布于 2019-02-06 07:00:51
是的,事实上,同一音频单元扩展的多个实例共享相同的过程,这是非常令人惊讶的,并且在任何地方都没有记录(就好像anything是关于音频单元的记录!)。
https://stackoverflow.com/questions/36675475
复制相似问题