应用程序运行负荷视图 - 控制后慢的话,卸载约15-20倍(App running slow aft

2019-08-31 19:48发布

使用:Xcode的4.6故事板弧样板顺着接下去SecondViewController

我有了当设备被旋转到正确的加载一个新veiwController主视图控制器的应用程序。 当应用程序开始一切都很正常。 如果我旋转设备,然后回到其卸载secondview控制器,约15-20倍,应用程序是非常slugish。 我已经缩小当seconed视图控制器被加载,它仅一切发生和只有当我旋转设备的次nunmber。 我也缩小了即是内存的问题。 我安装了跟踪用和可用内存的应用程序。 我的记忆从400MB变为当我旋转装置多次到900MB使用。 我想给尽可能多的信息,我可以。 每个视图都有8个NSTimers是火的每一秒。

有没有一种方法来卸载程序的视图,以确保正在被卸载?

我已经包含了这个代码,以确保装卸:

` - (无效)的setView:(UIView的*)aView {的NSLog(@ “>>>输入%s,<<<”,PRETTY_FUNCTION);

if (!aView)         // view is being set to nil
{
    NSLog(@"Should be unloading now");
}

[super setView:aView];

NSLog(@"<<< Leaving %s >>>", __PRETTY_FUNCTION__);

}

登录结果:2013年4月22日16:42:03.588 XXXXXXXX [XXXXXXX] >>>进入 - [GraphViewController的setView:] <<< 2013年4月22日16:42:03.589 XXXXXXXX [XXXXXXX] <<<离开 - [ GraphViewController的setView:] >>>

`我不知道我需要看在纠正这种东西。

任何“点”在正确的方向将会非常赞赏。

谢谢

Answer 1:

你有没有给你如何“卸载” SecondViewController多的信息。 你在做一个模式SEGUE到它呢? 如果是这样,那是你的问题 - 每次你做SEGUE时间,你实例化一个新的视图控制器,如果这些是模态塞格斯,所提出的控制器具有很强的指针呈现控制器,所以没有这些控制器将永远得到解除了分配当你来回走。

作为一项规则,你应该从来不会后退使用任何东西,但开卷赛格瑞进去故事板。 所以,解决问题的方法是使用一个展开SEGUE从SecondViewController回去MainViewController - 这实际上会回到您来自MainViewController的同一个实例,并SecondViewController将被释放。 如果你不知道如何使开卷SEGUE,我将编辑我的回答对你如何。

编辑后:

为了使一个展开塞格斯,你做两件事情。 在你打算回控制器,你添加一个方法 - 这两个重要的事情是,它是一个IBAction为,而且它有一个真实键入的UIStoryboardSegue一个参数*。 这不要紧,你叫什么,它甚至不需要有内部的任何代码,但我通常把在日志中陈述只是要确保它的调用。 然后,在IB在你从放卷控制器,你就像一个按钮或表格视图单元格的UI元素控件拖动(或从控制器本身,如果你想从代码启动它)在,落向绿色退出图标现场的底部 - 重要的是要注意,您是从UI元素拖动到退出图标在同一个控制器,而不是控制器之间。 当你放手的阻力在出口的图标,你会发现你与我上面提到的签名创建的任何方法。 选择一个你想要的,这就是它。 如果你想要的任何信息传递回目标控制器可以在源控制器就像任何其他SEGUE实施prepareForSegue。



文章来源: App running slow after loading viewcontroller, then unload about 15-20 times