对象自动释放次数太多

时间:2013-12-20 02:24:21

标签: ios objective-c memory-leaks

@property(nonatomic, retain) NIDropDown *rangeDropDown;
@property(nonatomic, retain) NIDropDown *filterDropDown;

self.rangeDropDown = [[[NIDropDown alloc]showDropDown:btn height:f dataSource:rangeArr imageData:nil direction:@"down"]autorelease];

self.filterDropDown = [[[NIDropDown alloc]showDropDown:btn height:f dataSource:filterArr imageData:nil direction:@"down"]autorelease];

在这些行中,对象自动释放太多次给了我。 换句话说,如下:

1,Method返回一个带有+0保留计数的Objective-C对象

2,对象已自动释放,但保留计数为+0。

NIDropDown:https://github.com/BijeshNair/NIDropDown

noArc,而NIDropDown是Arc。

我以其他方式尝试过。

@interface SelectorView(){
    NIDropDown *_rangeDropDown;
    NIDropDown *_filterDropDown;
}

 _rangeDropDown = [[[NIDropDown alloc]showDropDown:btn height:f dataSource:rangeArr imageData:nil direction:@"down"]autorelease];

 _filterDropDown = [[[NIDropDown alloc]showDropDown:btn height:f dataSource:filterArr imageData:nil direction:@"down"]autorelease];

or 

_rangeDropDown = [[NIDropDown alloc]showDropDown:btn height:f dataSource:rangeArr imageData:nil direction:@"down"];

 _filterDropDown = [[NIDropDown alloc]showDropDown:btn height:f dataSource:filterArr imageData:nil direction:@"down"];

两者都是物体的潜在泄漏。 1:Method返回一个具有+ 1保留计数的Object-C对象。

2:对象泄露:此执行路径中未引用已分配的对象,并且保留计数为+1。

但是,它并没有崩溃。我该怎么做才能避免这些潜在的泄漏?

0 个答案:

没有答案