Iphone 不理解';物体可能泄漏';错误

Iphone 不理解';物体可能泄漏';错误,iphone,objective-c,xcode,memory-leaks,Iphone,Objective C,Xcode,Memory Leaks,错误指向第348行,表示: '第347行上分配的对象的潜在泄漏' 我不明白这一点,显然第347行不是分配,第346行上的分配已经释放。可能在NSArray mediaSource中。newMediaToDelete对象不是自动释放?我尝试了以下代码,但没有得到任何警告: 346 - NSFileManager *fileManager = [[NSFileManager alloc] init]; 347 - [fileManager removeItemAtPath:[mediaSource.

错误指向第348行,表示:

'第347行上分配的对象的潜在泄漏'


我不明白这一点,显然第347行不是分配,第346行上的分配已经释放。

可能在NSArray mediaSource中。newMediaToDelete对象不是自动释放?

我尝试了以下代码,但没有得到任何警告:

346 - NSFileManager *fileManager = [[NSFileManager alloc] init];
347 - [fileManager removeItemAtPath:[mediaSource.newMediaToDelete objectAtIndex:i] error:nil];
348 - [fileManager release];
因此它必须与返回的mediaSource.newMediaToDelete对象一起使用

尝试var赋值,如:

  NSInteger i = 0;
    NSArray *ax = [NSArray arrayWithObjects:@"a",@"b",@"c",nil];
    NSFileManager *fileManager = [[NSFileManager alloc] init];
    [fileManager removeItemAtPath:[ax objectAtIndex:i] error:nil];
    [fileManager release];

它应该会显示…

避免在您自己的方法名称中使用“new”或“create”(除非它们返回的对象不是自动删除的)。它混淆了静态分析器。我遇到了这个问题,当我更改方法名称时,发现它消失了


更新:我看到Bavaried已经在评论中指出了这一点。

您是否尝试单击错误消息本身?那些指示问题路径的箭头有时非常有用。我猜是mediaSource或newmediaToDelete对象导致了该消息

我认为
NSFileManager
没有问题。我认为问题出在
newmediatodelet
的getter中,它可能返回一个未自动删除的对象。您可以发布getter或相应属性的一些代码吗?如果您没有更改getter名称,编译器/分析器会认为
-newMediaToDelete
返回一个拥有的对象,因为它的名称以“new”开头。
x = [mediaSource.newMediaToDelete objectAtIndex:i];