以编程方式将子视图添加到视图的正确方法是什么,
A)使用@property:
// SampleViewController.h
@interface SampleViewController : UIViewController
@property (nonatomic, weak) UITableView *subTableView;
@end
// SampleViewController.m
@synthesize subTableView = _subTableView;
或 B)在 loadView 中:
// SampleViewController.m
- (void)loadView
{
UITableView *subTableView = [[UITableView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:subTableView];
}
同样,这是假设我根本不使用 IB。两者之间有什么区别(因为实际上两者似乎都有效)?
附加问题,如果我在 中同时具有 A) 和 B) 代码SampleViewController.m
,为什么 XCode 允许我subTableView
在 B 中用作变量名,即使我已经@synthesize
在代码部分使用了该名称?
更新:
我做了一些挖掘,结果发现从 XCode 4.4 开始不再需要@synthesize
关键字。