我正在构建一个 iOS 应用程序扩展(在本例中是一个音频单元插件)。该代码混合了 Objective-C、C++ 和 C 文件。
当我在主机中运行我的音频单元的一个实例时,它工作正常,但一旦我打开另一个实例,这两个实例就开始相互干扰。似乎这两个实例都意外地在它们之间共享了一些变量,我怀疑它发生在我正在使用的 C 库中的某个地方。
我在我的 .m 文件中使用了很多“静态”声明变量,以确保它们具有文件范围。我是否正确地假设扩展的每个实例也将有其自己的每个静态变量实例,即使它们是在 C 库中声明的?还是在这种情况下使用 C 是一个糟糕的架构选择?
最佳答案
是的,同一个 Audio Unit Extension 的多个实例确实共享相同的过程,这非常令人惊讶并且没有在任何地方记录(好像关于音频单元的任何都被记录了!)。
关于ios - 应用扩展 : multiple instances interfering with each other,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36675475/