Objective-C在iPhone上播放声音

时间:2013-03-17 09:00:52

标签: iphone ios objective-c xcode

我在这段代码中需要帮助,

我正试图在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 __CFURL ')需要桥接演员

2 个答案:

答案 0 :(得分:2)

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

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

[OBJ release];

具体而言,您需要删除[soundfile release];

答案 1 :(得分:0)

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

因此您不需要[soundFile release];

有关ARC

的更多信息,请查看此apple document