释放一个指向UIScrollView的强指针

时间:2015-02-10 08:13:09

标签: ios uiviewcontroller uiscrollview ios8 uiview-hierarchy

我有一个声明如下的属性:

@property (nonatomic, strong) UIScrollView *scroll;

然后我在viewDidLoad:

// Create scrollview
_scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 100.0)];

// Function to add more view to _scroll
[self addStuff];

// This line makes things expensive on memory
[self.view addSubview:_scroll]; 

// Then if the above line is not commented out the view push lags
AViewController *aView = [[AViewController alloc] init];

[self.navigationController pushViewController:aView animated:YES];

如何保持强大的功能以便在我的其他功能上使用,但是可以阻止延迟推迟?

2 个答案:

答案 0 :(得分:1)

1.你需要优化你在里面做的事情

// Function to add more view to _scroll
[self addStuff];

2。如果您能够显示加载状态,请将代码移至

viewDidAppear:

答案 1 :(得分:0)

您应该直接使用property而不是实例变量并调用autorelease

self.scroll = [[[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 100.0)] autorelease];

始终尝试使用alloc init autorelease。如果自动释放仍不起作用,您可以简单地设置

self.scroll = nil

这将释放上面创建的实例变量