【问题标题】:Objective C: Memory Leak issue in Class Method目标 C:类方法中的内存泄漏问题
【发布时间】:2011-09-27 08:07:51
【问题描述】:

我遇到了内存泄漏警告消息,如下面的屏幕截图所示。

我需要一些关于如何解决此内存泄漏的建议。我可以在方法结束时做一个[自我释放]吗?

【问题讨论】:

    标签: objective-c ios memory-management memory-leaks


    【解决方案1】:
    +(UserStockInfo*)shareduserStockInfo{
    
         @synchronized([UserStockInfo class])
         {
    
             if(! _sharedUserStockInfo)
                 _sharedUserStockInfo= [[self alloc]init];
             return _sharedUserStockInfo; 
         }
    
         return nil;
    }
    

    【讨论】:

      【解决方案2】:

      您没有将返回的对象分配给_sharedUserStockInfo,因此您正在丢失引用和泄漏。在那个_sharedUserStockInfo 将保持nil 并且方法也将返回nil

      【讨论】:

      • @Zhen,说的正是。 “ 您没有分配返回给 _sharedUserStockInfo 的对象 ”所以继续将[[self alloc] init] 分配给_sharedUserStockInfo
      • @sidyll,感谢您的回复。在我这样做之后,是否有必要在方法结束时释放_shareUserStockInfo?
      • @Zhen 喜欢 sidyll 已经评论了,你可以把[[self alloc] init];换成_sharedUserStockInfo = [[self alloc] init];。你不需要在方法结束时release它。
      猜你喜欢
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      相关资源
      最近更新 更多