为什么我的应用程序在 iPad 上由于内存不足而崩溃?

问题描述 投票:0回答:1

编码新手。 我正处于在 iPad 上测试部分应用程序的阶段。它在模拟器中没有戏剧性地工作(我明白为什么)。当我在 iPad 上运行它时,它在任意随机图像生成的几个周期后崩溃。泄漏测试结果良好。我担心的是,它看起来像是不断打开新数组,而不关闭刚刚运行的前一个数组。

Leak test results

不太确定如何从这里开始。我尝试研究一些过程,看看是否可以解决它,但不幸的是,没有任何效果。

如果有人有时间测试一下并看看是否有解决方案,我将非常感激。

import Foundation
import UIKit

class Numbers0to30ViewController: UIViewController {
    
    @IBOutlet weak var numbersImageView: UIImageView!

    var numbersImage = 0
    var numbersArray = [ ]
    //array consists of 31 image literals

    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        numbersArray.shuffle()
        
    }
    
    @IBAction func nextButtonPressed(_ sender: UIButton) {
        
        numbersImage += 1
        
        if numbersImage == 31 {
            
            DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
                self.performSegue(withIdentifier: "goToNumbers30Reset", sender: self)
            }
    //segue goes to a separate UIView with a 'reset' and 'menu' button. 'Reset' goes back to this UIView to repeat the process, 'menu' goes back to the main UIView.
        }
    }
ios crash uikit xcode-instruments
1个回答
0
投票

为了避免泄漏,请检查所有委托是否都是弱的,完成块中的 self、调度队列、动画块等应该是弱的。

DispatchQueue.main.asyncAfter(deadline: .now() + 5) { [weak self] in
guard let self = self else { return }
self.performSegue(withIdentifier: "goToNumbers30Reset", sender: self) }
© www.soinside.com 2019 - 2024. All rights reserved.