由于消息被发送到解除分配的实例,导航栏中的标题崩溃

时间:2012-10-18 15:07:01

标签: objective-c ios memory-management

我在viewDidLoad中有以下代码(用于在导航栏中设置标题),该代码会在发送给已解除分配的实例"消息时崩溃。错误:

UILabel * label = [[[UILabel alloc] initWithFrame:CGRectMake(0,0,45,45)] autorelease];

label.textColor = [UIColor whiteColor];
label.backgroundColor=[UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:20];
label.font = [UIFont fontWithName:@"Mayfield Regular" size:15];
self.navigationItem.titleView = label;

label.text=@"SEARCH"; //CUSTOM TITLE
[label sizeToFit];
[label release];

我该如何纠正这个问题?

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

UILabel * label = [[[UILabel alloc] initWithFrame:CGRectMake(0,0,45,45)] autorelease];

而不是发布

[label release];

这显然是错误的。您可以使用自动释放或发布。

答案 1 :(得分:2)

你正在过度发布标签。您在发布的第一行中调用autorelease,然后在发布的最后一行中调用release。只做其中一个。

相关问题