iPhone中的内存管理?

iPhone中的内存管理?,iphone,memory-management,Iphone,Memory Management,参见方法,在XCode中执行产品>分析后,我将在行号处得到以下警告 - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view { UILabel *retval = (id)view; if (!retval) { retval= [[UILabel alloc] ini

参见方法,在XCode中执行产品>分析后,我将在行号处得到以下警告

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {

UILabel *retval = (id)view;

if (!retval) {
    retval= [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [pickerView rowSizeForComponent:component].width, [pickerView rowSizeForComponent:component].height)];
}

NSDictionary *destination = [appDelegate.destinations objectAtIndex:row];
retval.text = [destination objectForKey:@"name"];
retval.font = [UIFont systemFontOfSize:18];
return retval;
}
让我知道,这是什么,我该怎么做

请编辑此代码,并向我解释您在其中更改了什么,
谢谢

当您分配标签时,请将其保持在自动释放模式,因为您需要在某处释放RETVAL。您还没有释放它,因此发现了漏洞

return retval;

Potential leak of an object allocated on line 213 and stored into 'retval'

就在分配标签时,将其保持在自动释放模式,因为您需要在某个地方释放RETVAL。您还没有释放它,因此发现了漏洞

return retval;

Potential leak of an object allocated on line 213 and stored into 'retval'

retval是您分配但从不释放的UILabel。通常,您会将其创建为

retval= [[[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [pickerView rowSizeForComponent:component].width, [pickerView rowSizeForComponent:component].height)]autorelease];

在调用方法中,将其添加到视图或其他任何地方。

retval是一个UILabel,您可以分配它,但决不释放它。通常,您会将其创建为

retval= [[[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [pickerView rowSizeForComponent:component].width, [pickerView rowSizeForComponent:component].height)]autorelease];

在调用方法中,将其添加到视图或其他任何地方。

自动释放retval,如下所示。。。retval=[[UILabel alloc]initWithFrame:CGRectMake(0.0f,0.0f,[pickerView rowSizeForComponent:component]。宽度,[pickerView rowSizeForComponent:component]。高度)]自动删除];像这样自动释放检索。。。retval=[[UILabel alloc]initWithFrame:CGRectMake(0.0f,0.0f,[pickerView rowSizeForComponent:component]。宽度,[pickerView rowSizeForComponent:component]。高度)]自动删除];