0

我找到了一个很棒的关于 AudioUnits 的教程(http://www.cocoawithlove.com/2010/10/ios-tone-generator-introduction-to.html),我已经开始在我的系统上工作了;但是,我无法从 RenderTone C 函数调用我的 Objective-C 方法。

在与 RenderTone 相同的 m 文件中,我有以下方法:

- (Float32)signalGenerator:(int)sample withSampleRate:(int)Fs andFrequency:(float)frequency{

当我尝试从 RenderTone 函数调用此方法时,XCode 给我以下错误:“使用未声明的标识符‘signalGenerator’。” 如果它在同一个文件中,为什么它看不到这个方法?

谢谢阅读。

4

1 回答 1

0

RenderTone()函数中,

ToneGeneratorViewController *viewController = (ToneGeneratorViewController *)inRefCon;

是您的视图控制器的实例,因此您可以调用您的方法

Float32 x = [viewController signalGenerator:13 withSampleRate:14 andFrequency:15];

从内部RenderTone()。要让编译器知道该方法,您可以

  • RenderTone()在方块内移动@implementation ToneGeneratorViewController,或
  • 使用类扩展添加函数原型:

    @interface ToneGeneratorViewController ()
    - (Float32)signalGenerator:(int)sample withSampleRate:(int)Fs andFrequency:(float)frequency;
    @end
    
于 2013-04-24T18:06:04.557 回答