我找到了一个关于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'。”如果它在同一个文件中,为什么不能看到这个方法呢?
感谢阅读。
答案 0 :(得分: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