Objective-C在iPhone上播放声音

Objective-C在iPhone上播放声音,iphone,ios,objective-c,xcode,Iphone,Ios,Objective C,Xcode,我需要这方面的帮助 我试图在iPhone应用程序上按下一个按钮时播放声音,但出现了此错误。 这是密码 -(IBAction)playSound:(id)sender{ // NSLog(@"play Sound"); SystemSoundID soundID; NSString *buttonName = [sender currentTitle]; NSString *soundFile = [[NSBundle mainBundle]

我需要这方面的帮助

我试图在iPhone应用程序上按下一个按钮时播放声音,但出现了此错误。 这是密码

   -(IBAction)playSound:(id)sender{
  //  NSLog(@"play Sound");
    SystemSoundID soundID;
    NSString *buttonName = [sender currentTitle];
    NSString *soundFile = [[NSBundle mainBundle]
                           pathForResource:buttonName ofType:@"wav"];
    AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:soundFile], &soundID);
    AudioServicesPlaySystemSound(soundID);
    [soundFile release];
错误消息说

释放不可用:在自动参考计数模式下不可用

ARC禁止显式消息“释放”

*将Objective-C指针类型“id”转换为C指针类型“CFURLRef”(又名“const struct\uu CFURL”)需要桥接转换


此错误表示必须使用,因此不需要释放任何对象,因为它会自动计算其引用

在您的情况下,请评论或删除

[OBJ release];
具体来说,您需要删除
[soundfile release]

当您在项目中使用ARC(自动引用计数)时,您不需要释放任何对象,因为编译器会为您提供帮助

因此,您不需要
[soundFile release]


有关ARC的更多信息,请查看此页

如果您正在使用ARC,只需删除[soundFile release];我已经做了更改并删除了[Soundfile release];但是仍然要将Objective-C指针类型“id”转换为C指针类型“CFURLRef”(又名“const struct\uu CFURL”)的错误转换需要桥接转换这行代码有什么问题<代码>AudioServicesCreateSystemSoundID((CFURLRef)[NSURL文件URLWithPath:soundFile],&soundID)
@TeddyAble-这个问题对你很有帮助……祝你好运:)如果你能帮忙,请看我上面的评论。谢谢。