【发布时间】:2012-03-14 00:31:35
【问题描述】:
我真的很难摆脱以下警告:
此时不属于调用者的对象的引用计数递减不正确。
代码编译良好,应用程序似乎运行良好。基本上我正在尝试创建一个类的对象以在按下按钮时播放短音频剪辑。我创建了一个类来播放文件,对象以字符串形式传递文件名。
代码如下:
- (IBAction) playKick
{
PlayAudio *thisPlayAudio= [[[PlayAudio alloc] init] playFile:(@"RockSnare")];
[thisPlayAudio release];
}
我已阅读其他帖子,任何帮助将不胜感激!
【问题讨论】:
-
您好,感谢您的回复!我已经尝试使用此代码自动释放 - (IBAction) playKick { PlayAudio *thisPlayAudio = [[[[PlayAudio alloc] init] playFile:(@"file")] autorelease]; } 但随后我收到“未使用变量”警告,“分析器”警告仍然没有出现!
-
这段代码看起来不错(如果写得有点不合常规并且可能依赖于实现细节)。你确定问题出在这个方法上吗?警告指向哪一行?
-
这个问题他好像问了两次。
-
显示 playFile 方法的代码。我猜它可能会返回一个自动释放的对象,而不是返回您正在实例化的 PayAudio 类的实例。如果是这样的话,你就不会释放你认为你正在释放的东西。我认为看到这样的代码是不寻常的。我建议将 alloc/init 与 playFile 方法调用分开。更明确地处理释放实例化对象。
标签: objective-c xcode ios4