【问题标题】:NSArray Memory Leak!! Not able to get Why?NSArray 内存泄漏!!无法获取为什么?
【发布时间】:2011-04-24 16:28:07
【问题描述】:

您好,我在 Instruments 中遇到以下代码行的内存泄漏。

 NSArray *itemsList=[[NSArray alloc] initWithObjects:@"Love",
     @"Hate",@"Happy",@"Sad",
     @"Desire",@"Anger",@"Hope",@"Fear",@"Silly",nil];

我正在使用以下代码: arrayList 也在 dealloc 块中释放。

NSArray *itemsList=[[NSArray alloc] initWithObjects:@"Love",@"Hate",
    @"Happy",@"Sad",@"Desire",
    @"Anger",@"Hope",@"Fear",@"Silly",nil];
self.arrayList=itemsList;
[itemsList release];

【问题讨论】:

    标签: iphone cocoa memory-management memory-leaks nsarray


    【解决方案1】:

    我假设arrayList@property 语句中使用retain 声明。如果不是,那肯定是你的问题。

    如果是,那么您有泄漏,但不在您发布的代码中。重要的是要认识到 Instruments 首先显示的不一定是泄漏发生的位置,而是泄漏内存的分配位置。您将查看 arrayList 的其余用法,并找到缺少发布的保留。

    如果你点击 Instruments 中对象内存地址旁边的箭头,你应该能够看到你的对象被保留和释放的所有地方。您将查看它们并确定哪个保留缺少发布。

    【讨论】:

    • 可能只是忘记在-(void) dealloc 中释放arrayList。
    • w.m:问题是“arrayList 也在 dealloc 块中释放。”
    • 对,对不起。一定是错过了。
    猜你喜欢
    • 2011-05-31
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 2011-10-04
    • 1970-01-01
    • 2012-08-16
    • 2011-10-25
    相关资源
    最近更新 更多