由于内存警告(Swift / Xcode),iOS设备上的应用程序崩溃

时间:2015-09-02 01:15:37

标签: ios xcode swift

该应用程序是一项调查,用户在不同的ViewControllers上回答一系列问题,并相应地更改一个变量,在应用程序结束时显示最终数字。

代码非常基本,它在模拟器上运行顺畅,但由于内存警告而在我的iPhone上进行测试时崩溃。

使用大量内存有三个潜在的代码片段。有相当数量的动画图像(总共200个)使用如下:

cloudAnimation.animationImages = [
        UIImage(named: "Home Page Cloud Animation 01.png")!,
        UIImage(named: "Home Page Cloud Animation 02.png")!,
        UIImage(named: "Home Page Cloud Animation 03.png")! ]

   cloudAnimation.animationDuration = 6
   cloudAnimation.startAnimating()

每个新的ViewController都会向内存中添加大约50-60MB的数据,我认为它可能来自segues。每个屏幕上有2-3个按钮。根据它们单击的内容,变量会发生变化。这是代码:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "yesButton" {
            var DestViewController : YesViewController = segue.destinationViewController as! YesViewController
            DestViewController.percentChance = 0.02
        } else if segue.identifier == "noButton" {
            var DestViewController : NoViewController = segue.destinationViewController as! NoViewController
            DestViewController.percentChance = percentChance
        } else if segue.identifier == "goHome" {
            var DestViewController : HomeScreenViewController = segue.destinationViewController as!
            HomeScreenViewController
        }
    }
唯一可能弄乱内存的另一件事就是每个视图都拥有" percentChance"变量,它被改变并从一个传递到另一个。

这些示例中的任何一个看起来都可能使用大量内存吗?完成ViewControllers或动画后,如何停用或取消初始化它们?非常感谢任何帮助。

0 个答案:

没有答案