iphone - NSMutableArray 存在内存泄漏

标签 iphone ios cocoa-touch cocoa ipad

我正在使用以下代码来创建 NSMutableArray。当我在“配置文件”模式下运行相同的内容时,它显示内存泄漏。

SampleArray.h

@interface SampleArray: NSObject {
}
@property (assign, retain) NSMutableArray *array;
@end

SampleArray.m

#import "SampleArray.h"
@implementation SampleArray
@synthesize array;
-(void) viewDidLoad {
    self.array =[ [NSMutableArray alloc] init];
}

-(void) viewWillDisappear:(BOOL)animated {
    [self.array release];
}
@end

当我使用自动释放时,我无法在其他函数或方法中访问相同的内容并返回空值。请帮我找出问题所在。

最佳答案

在 viewWilLDisappear 中释放这个数组不是一个好主意,你应该在 dealloc 函数中释放。您应该担心过度释放此项目并导致程序崩溃,因为在此 ViewController 的生命周期内 viewWilLDisappear 可能会被多次调用。

无论如何,您双重保留了该项目,因为您的属性对其进行了保留(并使其成为非原子的,而不是分配),将自动释放添加到您的分配/初始化中:

self.array =[[[NSMutableArray alloc] init] autorelease]; 

然后移动

[array release];

到你的dealloc函数。或者转换为 ARC,不再担心...

关于iphone - NSMutableArray 存在内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12076852/

相关文章:

swift - WKInterfaceLabel.setText 不反射(reflect)模式 viewController 关闭后的更改

iphone - 删除NSURL路径的内容

ios - 如何在 Playgrounds 中显示原型(prototype)预览?

iphone - AudioSessionSetActive 中断后失败

ios - UIWebView 与 Django

ios - 我如何摆脱 iOS 7 Objective-C 中的这个警告?

iphone - UIImage 只拉伸(stretch)一部分

iphone - 将散列转换为 NSString?

iphone - 指向 Objective-C 中的指针的指针

iPhone - 翻转 UIImage