Objective-C在iPhone上播放声音
我需要这方面的帮助 我试图在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]
-(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-这个问题对你很有帮助……祝你好运:)如果你能帮忙,请看我上面的评论。谢谢。