0

我正在尝试在 xcode 中编写最简单的“按下按钮并听到声音”设置,但我仍然设法得到一些神秘的错误。这是我的代码:

在 .h 文件中:

#import <AVFoundation/AVFoundation.h>

在 .m 文件中:

- (IBAction)beepButton:(UIButton *)sender {
       NSURL* musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                                   pathForResource:@"buttonBeep"
                                                   ofType:@"mp3"]];
        AVAudioPlayer *click = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
        [click play];
    //[click release];
}

当我尝试编译我的应用程序时,出现以下错误:

Undefined symbols for architecture armv7s:
  "_OBJC_CLASS_$_AVAudioPlayer", referenced from:
      objc-class-ref in MyFirstViewController.o
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

难道我做错了什么?任何帮助表示赞赏!

4

3 回答 3

2

这称为链接器错误。这是在一切都编译好之后完成的。

问题出在符号_OBJC_CLASS_$_AVAudioPlayer上。您所做的是忽略通过美元符号留下的部分AVAudioPlayer

由于您正在尝试使用AVAudioPlayer该类并且您导入<AVFoundation/AVFoundation.h>,您需要意识到您必须将 包含AVFoundation.framework在您的项目中。

如果您查看 的参考文档AVAudioPlayer,您会看到文档声明它位于AVFoundation.framework. 这就是您知道需要将其添加到项目中的方式。

于 2013-05-21T04:43:08.703 回答
1

您必须添加AVFoundation.framework到您的项目中,因为它包含 AVAudioPlayer

于 2013-05-21T04:43:00.103 回答
1

你添加了 AVFoundation.framework 吗?并确保您的 .mp3 文件出现在“复制捆绑资源”中

于 2013-05-21T04:58:42.860 回答