Objective c 如何使用AudioServices播放音效-目标C

Objective c 如何使用AudioServices播放音效-目标C,objective-c,audio,Objective C,Audio,我一直在网上搜索一种在Objective C中播放声音的方法,我找到了很多答案。然而,当我尝试播放一些东西时,会弹出三个“Apple Mach-O链接器错误” 这是我的密码: viewController.m -(IBAction)shoot{ tempSound *sound = [[tempSound alloc]init]; [sound playSound:@"test" :@"wav"] } tempSound.h #import <UIKit/UIKit.

我一直在网上搜索一种在Objective C中播放声音的方法,我找到了很多答案。然而,当我尝试播放一些东西时,会弹出三个“Apple Mach-O链接器错误”

这是我的密码:

viewController.m

-(IBAction)shoot{
    tempSound *sound = [[tempSound alloc]init];
    [sound playSound:@"test" :@"wav"]  
}
tempSound.h

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <AudioToolbox/AudioToolbox.h>
#import <AVFoundation/AVFoundation.h>

@interface tempSound : NSObject{
    SystemSoundID audioEffect;
}

-(void)playSound: (NSString*) fName : (NSString*) ext;

@end

提前谢谢

您必须链接AudioToolbox框架。(如果您使用的是Xcode,您可以将其添加到“构建阶段”部分的“与二进制文件链接”选项卡中;如果您使用的是命令行工具链,您应该添加
-framework AudioToolbox
链接器标志。)

您必须针对AudioToolbox框架进行链接。(如果您使用的是Xcode,您可以将其添加到“构建阶段”部分的“与二进制文件链接”选项卡中;如果您使用的是命令行工具链,您应该添加
-framework AudioToolbox
链接器标志。)

您应该使用大写字母命名您的类。这并不能解决您的问题,请查看h2co3答案,但这会帮助你组织起来。好的,谢谢。我会记住的。你应该用大写字母来命名你的类。并不是说它能解决你的问题,看看h2co3的答案,但它会帮助你组织起来。好的,谢谢。我会记住的。我不会再犯错误了,但是现在声音不会播放了,尽管我激活了“播放用户界面声音”@Bogidon,这应该在另一个问题中问:)我不会再犯错误了,但是现在声音不会播放了,尽管我激活了“播放用户界面声音”@Bogidon,这应该在另一个问题中提出:)
@implementation tempSound

-(void)playSound:(NSString *)fName :(NSString *)ext
{
    NSString *path  = [[NSBundle mainBundle] pathForResource : fName ofType :ext];

    if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {

        NSURL *pathURL = [NSURL fileURLWithPath:path];
        AudioServicesCreateSystemSoundID((__bridge CFURLRef)pathURL, &audioEffect);
        AudioServicesPlaySystemSound(audioEffect);
    }

    else{
        NSLog(@"Error, file not found: %@",path);
    }


}

@end