@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。
但是,它并没有崩溃。我该怎么做才能避免这些潜在的泄漏?