我在我的项目中成功使用ARC.但是,我遇到了一些文件(例如,在单元测试和模拟对象中),其中ARC的规则现在更加脆弱.我记得听说有一种方法可以在每个文件的基础上禁用ARC,但我无法找到这个选项.
这可能吗?如何基于每个文件禁用ARC?
xcode objective-c automatic-ref-counting manual-retain-release
我是iPhone 4S上的runung Instruments.我在这个方法中使用AVAudioPlayer:
-(void)playSound{
NSURL *url = [self.word soundURL];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
if (!error) {
[audioPlayer prepareToPlay];
[audioPlayer play];
}else{
NSLog(@"Problem With audioPlayer on general card. error : %@ | url %@",[error description],[url absoluteString]);
}
Run Code Online (Sandbox Code Playgroud)
我在播放声音文件时遇到泄漏:
泄漏的物体:
1.
对象:NSURL
负责任的图书馆:基金会
负责框架:基金会 - [NSURL(NSURL)allocWithZone:]
2.
对象:_NSCFString
负责任的图书馆:基金会
负责框架:基础 - [NSURL(NSURL)initFileURLWithPath:]
仪器没有直接指向我的代码,因此我发现很难找到泄漏原因.
我的问题
什么可能导致泄漏? 或者当我对代码不负责时,如何定位泄漏?
编辑
这是仪器周期视图中的模式:
谢谢Shani