编码新手。 我正处于在 iPad 上测试部分应用程序的阶段。它在模拟器中没有戏剧性地工作(我明白为什么)。当我在 iPad 上运行它时,它在任意随机图像生成的几个周期后崩溃。泄漏测试结果良好。我担心的是,它看起来像是不断打开新数组,而不关闭刚刚运行的前一个数组。
不太确定如何从这里开始。我尝试研究一些过程,看看是否可以解决它,但不幸的是,没有任何效果。
如果有人有时间测试一下并看看是否有解决方案,我将非常感激。
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.
}
}
为了避免泄漏,请检查所有委托是否都是弱的,完成块中的 self、调度队列、动画块等应该是弱的。
DispatchQueue.main.asyncAfter(deadline: .now() + 5) { [weak self] in
guard let self = self else { return }
self.performSegue(withIdentifier: "goToNumbers30Reset", sender: self) }