Ios ARC导致大量的废弃内存

Ios ARC导致大量的废弃内存,ios,memory,memory-management,instruments,automatic-ref-counting,Ios,Memory,Memory Management,Instruments,Automatic Ref Counting,当iOS 5发布时,我将我的整个项目转换为ARC,并且还没有EXC_BAD_访问权限。然而,我最近一直在查看Instruments中的内存监视器,并注意到每当我重复执行相同的任务(例如拍照)时,就会有相当数量的对象被添加到堆中。然而,添加的对象看起来绝对不应该被保留在周围。这些例子包括: - (NSString *)imagesDirectory { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirect

当iOS 5发布时,我将我的整个项目转换为ARC,并且还没有EXC_BAD_访问权限。然而,我最近一直在查看Instruments中的内存监视器,并注意到每当我重复执行相同的任务(例如拍照)时,就会有相当数量的对象被添加到堆中。然而,添加的对象看起来绝对不应该被保留在周围。这些例子包括:

- (NSString *)imagesDirectory {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *folderDirectory = [documentsDirectory stringByAppendingPathComponent:@"Images"];
    NSFileManager *fileManager = [[NSFileManager alloc] init];
    [fileManager createDirectoryAtPath:folderDirectory withIntermediateDirectories:YES attributes:nil error:nil];
    fileManager = nil;
    return folderDirectory;
}

其中表示未释放
fileManager
对象,这是:

UIImageView *transitionImage = [[UIImageView alloc] initWithImage:thumbnail];
        transitionImage.center = primeReviewButton.center;
        transitionImage.bounds = primeReviewButton.bounds;
        transitionImage.transform = orientationTransform;
        transitionImage.alpha = 0.0;

        [self.cameraView insertSubview:transitionImage belowSubview:photoNumberBadge];

        [UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionAllowUserInteraction
                         animations:^{
                             transitionImage.alpha = 1; 
                         }
                         completion:^(BOOL finished){
                             transitionImage.alpha = 0;
                             transitionImage.image = nil;
                             [transitionImage removeFromSuperview];
}];
它说
animateWithDuration:
在某种程度上是造成内存丢失的原因


我已经尽我所能让这些对象像应该的那样被释放(内存监视器能告诉我的所有关于它们的信息是它们都被Malloc-ed了一次,并且保留计数为1)。这是ARC的错误吗?

为什么要创建一个新的
NSFileManager
,而不是使用
defaultManager
?猜测一下,当块捕获
transitionImage
时,它的保留计数正在增加。可能会调用
[transitionImage release]
[UIView….]
之后@一二三, <代码>[NSFileManager defaultManager]
在iOS 5之前不是线程安全的。迈克,我已经想到了,但是在ARC下我不能发送我自己的发布消息=/只是一个想法。。。您确定ARC实际上已打开吗?