-2

我需要这段代码的帮助,

当在 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 ”)需要桥接转换

4

2 回答 2

2

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

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

[OBJ release];

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

于 2013-03-17T09:11:15.357 回答
0

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

因此你不需要[soundFile release];

查看此苹果文档以获取有关 ARC 的更多信息

于 2013-03-17T09:23:40.003 回答