0

- (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属性也没有在方法中的任何地方使用。

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

4

1 回答 1

1

如果没有该分配,您的控制器将具有不引用标签的属性。该属性可能不会在该方法的其他地方使用(不应该,所有配置都在本地引用上完成),但它应该在类中的其他地方使用。也许要更新文本/显示/隐藏/某些东西。

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

于 2013-08-31T11:51:46.973 回答