Apple的SpeakHere演示,混合了ObjC和C ++,以及翻译单元

时间:2012-12-05 12:11:33

标签: c++ objective-c ios

使用Apple的SpeakHere演示作为起点,我想实现声音波形而不是电平表。我在GLLevelMeter旁边添加了另一个视图SoundWaveView,一个ObjC类,并在AQLevelMeter.mm类上建模了它的实现。

在发现文件应该命名为“。mm”之后,代码会编译,但在执行时,它会在MeterTable对象上与EXC_BAD_ACCESS崩溃。在调试器中打印此对象提供以下内容:

error: instance method 'setMeterTable:' has a different number of parameters in different translation units (0 vs. 1)
error: instance method 'setMeterTable:' has a different number of parameters in different translation units (0 vs. 1)
note: instance method 'setMeterTable:' also declared here
note: instance method 'setMeterTable:' also declared here
error: 2 errors parsing expression

现在我怀疑在AQLevelMeter.mm(Apple)和SoundWaveView.mm(我的)中包含MeterTable.h给了我重复,但是如何在不导入.h的情况下从我的类访问MeterTable

1 个答案:

答案 0 :(得分:1)

一定要初始化所有讨厌的指针。或者选择另一种语言以减轻后顾之忧(对不起,我无法抗拒)。