从Apples documentation,他们在- (void)loadView
中创建一个UIScrollView,如下所示:
- (void)loadView {
CGRect fullScreenRect=[[UIScreen mainScreen] applicationFrame];
scrollView=[[UIScrollView alloc] initWithFrame:fullScreenRect];
scrollView.contentSize=CGSizeMake(320,758);
// do any further configuration to the scroll view
// add a view, or views, as a subview of the scroll view.
// release scrollView as self.view retains it
self.view=scrollView;
[scrollView release];
}
所以我理所当然地认为scrollView var是在.h文件中声明的实例变量?为什么他们将scrollView
var设置为直接赋值?你不应该使用适当的内存管理(如合成属性)?
我想知道的原因是因为我自己正在UIScrollView
创建- (void)loadView
。我已经声明了一个UIScrollView属性来通过我的类获取ScrollView的句柄。现在它看起来像这样(并且正在工作)但是我想知道我的代码是否正确,我不喜欢直接分配调用:
- (void)loadView {
// Setup Scroll View
// scrollView is a property setup as (nonatomic, retain) UIScrollView *scrollView;
// Wouldn't it be better if used self.ScrollView instead?
scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
[scrollView setContentSize:CGSizeMake(1, 1)];
[scrollView setDelaysContentTouches:NO];
self.view = scrollView;
}
答案 0 :(得分:1)
但是,内存在此管理 - scrollView
不需要保留,因为它由self.view
保留。
如果您需要保留对scrollView
的引用,那么您需要保留/释放它。但是,如果您的目的不需要保留参考,只需将其分配给self.view
,然后释放它,继续您的生活!