应用扩展:多个实例相互干扰

时间:2016-04-17 10:41:12

标签: ios c static-linking

我正在构建一个iOS App Extension(在这种情况下是一个Audio Unit插件)。代码是Objective-C,C ++和C文件的混合。

当我在主机中运行我的音频单元的一个实例时,它工作正常,但是一旦我打开另一个实例,这两个实例开始相互干扰。似乎两个实例都意外地在它们之间共享一些变量,我怀疑它正在我正在使用的C库中的某个地方发生。

我在.m文件中使用了很多'静态'声明的变量,以确保它们具有文件范围。我是否正确假设Extension的每个实例也将拥有自己的每个静态变量的实例,即使它们是在C库中声明的?或者在这种情况下使用C是一个糟糕的架构选择?

1 个答案:

答案 0 :(得分:0)

是的,确实是同一音频单元扩展的多个实例共享相同的过程,这是非常令人惊讶的,并且没有在任何地方进行记录(就像关于音频单元的任何任何记录一样!)。