不确定方法中未使用的子视图分配

时间:2013-08-31 11:47:27

标签: ios objective-c

我在常规视图控制器中的- (void)viewDidLoad方法内找到了这个代码示例:

UILabel *label  = [[UILabel alloc] init];
label.text = @"Left Panel";
[label sizeToFit];
label.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin;
[self.view addSubview:label];
self.label = label;

如果我注释掉最后一行self.label = label;,标签仍会正确显示。 self.label属性不会在方法中的任何位置使用。

我要问的是,在最后一行中作业的目的是什么?

1 个答案:

答案 0 :(得分:1)

如果没有该分配,您的控制器将具有不引用标签的属性。该属性可能不会在该方法的其他地方使用(它不应该是,所有配置都在本地引用上完成),但它应该在类的其他地方使用。也许更新文本/ show / hide / something。

标签仍然显示,因为您已将其添加为子视图。超级视图保留其所有子视图,因此标签不会被销毁。