【发布时间】:2013-04-04 05:53:02
【问题描述】:
我对从方法返回的对象的内存警告感到困惑。 这是我的代码。
-(void)returnHeaderView
{
self.headerView=[[UIView alloc]init];
headerView.frame=CGRectMake(0, 0, 955, 45);
UILabel *fromLabel=[self returnLabel];
fromLabel.frame=CGRectMake(400, 5, 200, 44);
fromLabel.text=@"Open Time";
[headerView addSubview:fromLabel];
[fromLabel release];(in correct decrement of the reference count of an object that is not owned at this point by the caller)
[self.headerView addSubview:fromLabel];
[self.view addSubview:self.headerView];
[self.headerView release];
}
-(UILabel *)returnLabel
{
UILabel *label= [[UILabel alloc] init] ;
label.textColor = [UIColor blackColor];
label.font = FONT_TITLE;
label.numberOfLines=1;
label.textAlignment=UITextAlignmentLeft;
label.lineBreakMode=UILineBreakModeWordWrap;
label.backgroundColor=[UIColor clearColor];
return label;
}
这是我的两种方法。 1.-(void)returnHeaderView。 2.-(UILabel *)returnLabel.
-returnLabel 是返回标签,方法返回的 UILabel 对象的引用传递给 returnHeaderView 方法的 fromLabel UILabel 对象。 然后我释放 fromLabel 对象。
但它给出了内存警告( 正确减少调用者此时不拥有的对象的引用计数)。
所以有人建议我这段代码有什么问题。 以及如何释放方法返回的对象。
谢谢。
【问题讨论】:
-
Apple 的 Advanced Memory Management Programming Guide 是所有 Objective-C 程序员的必读。它完全回答了这个问题以及许多其他重要的内存管理问题。
标签: ios objective-c memory-leaks