不确定方法内部未使用的子视图赋值



我在常规视图控制器中的- (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属性也没有在方法中的任何位置使用。

我想问的是,最后一行作业的目的是什么?

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

标签仍然显示,因为您已将其添加为子视图。超级视图保留了它的所有子视图,这样标签就不会被破坏。

最新更新