我在常规视图控制器中的- (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。
标签仍然显示,因为您已将其添加为子视图。超级视图保留了它的所有子视图,这样标签就不会被破坏。