突然“物体的潜在泄漏”

Posted

技术标签:

【中文标题】突然“物体的潜在泄漏”【英文标题】:Suddenly "Potential leak of an object" 【发布时间】:2013-03-24 21:15:30 【问题描述】:

我一直在这里使用 xcode 构建和做各种事情。它从不抱怨“泄漏问题”。自从我尝试插入 ShareKit 后,它才刚刚开始。

所以.. 我删除了 ShareKit 的所有痕迹,出现了 11 个“对象的潜在泄漏”条目。

这是一个使用 textView 发生的示例:

文件.h

#import <UIKit/UIKit.h>
#import "iAd/iAd.h"
#import "Oracao.h"
#import <QuartzCore/QuartzCore.h>

@interface DetalhesOracaoViewController : UIViewController
    Cclass *cclass;


@property (nonatomic, retain) Cclass *cclass;
@property (nonatomic, retain) IBOutlet UITextView *tWeekDay;

@end

文件.m

...
@synthesize tWeekDay;

- (void)viewDidLoad

    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    self.tWeekDay.text = [NSString stringWithFormat:@"%d° day - %@", cclass.dia, cclass.dia_semana];


#pragma mark dealloc
-(void)dealloc 
    [tWeekDay release];
    [super dealloc];

对可以做什么有任何想法吗? 谢谢!

编辑:

这是另一个我无法理解的泄漏:

【问题讨论】:

哪里有泄漏警告?分析仪可以指出来。 【参考方案1】:

我认为你保留分配的UITextView,它首先使用alloc,而不是addSubview,而不是retain。在创建代码时共享代码可能会更有把握。

所以你应该平衡一下

试试:

@property (nonatomic, assign) IBOutlet UITextView *tWeekDay;

或添加

-(void)dealloc 
[tWeekDay removeFromSuperview];
[tWeekDay release];
[super dealloc];

【讨论】:

而对象只是放在XIB上,然后关联@property,然后关联@synthesize 您不应该显式调用[super dealloc],编译器会为您处理它,请参阅此相关问题***.com/questions/7292119/… 您也可以尝试将属性声明中的assign 更改为strongweak,assign 不应该用于指针。 @RickOn 大声笑我注意到这个问题已经有两年多了。 :D 嗯,嗯。

以上是关于突然“物体的潜在泄漏”的主要内容,如果未能解决你的问题,请参考以下文章

Zeromq 内存泄漏 (pyzmq)

如何避免JS内存泄漏?

记一次xstream引起的内存泄漏

Android内存泄漏:谨慎使用getSystemService

java内存泄漏问题排查

WKWebView与js交互中产生的内存泄漏