gpt4 book ai didi

ios - 用户声称 iOS 应用程序导致其他 iOS 应用程序关闭?那是一回事吗?

转载 作者:行者123 更新时间:2023-12-01 18:41:46 24 4
gpt4 key购买 nike

我有一个 Swift 2.3 应用程序被 20 人通过 TestFlight 使用。它是另一个流行应用程序的配套应用程序,因此用户经常在两者之间切换。他们使用主应用程序一会儿,然后切换到我的应用程序。

人们提示的一个问题是,当他们切换到我的应用程序并切换回主应用程序时,主应用程序必须完全重启,这可能需要几分钟。他们声称其他应用程序不会导致主应用程序像这样关闭,并希望我“修复”我的应用程序,这样它就不会强制重启其他应用程序。

我是 iOS 开发的新手,所以这有点莫名其妙。我的应用程序的某些方面会迫使其他应用程序终止吗?电池消耗过多?还有什么?有没有办法测试这个或一个旨在减少这种情况发生的可能性的指标?

最佳答案

这可能是内存泄漏。

在 AppDelegate 中添加:

func applicationDidReceiveMemoryWarning(application: UIApplication) {
//Print and send to analytics
}

检查这个问题: How to implement didReceiveMemoryWarning in Swift?

然后将其添加到所有 View Controller 中:
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
//Print and send to analytics
//Dispose of any resources that can be recreated
}

检查内存报告:

有时当你做一个 Action 时,比如按下某个按钮,你会看到内存使用量明显上升,几秒钟后它不会下降。那应该是泄密了。

此外,如果单击“仪器中的配置文件”,您将在使用应用程序时获得详细报告,了解哪个进程占用了多少内存。

enter image description here

以我的经验,内存泄漏的发生主要是因为闭包:
    //Leaks memory
ez.runThisAfterDelay(seconds: 2) {
self.doSomething()
}

//Doesn't leak memory
ez.runThisAfterDelay(seconds: 2) { [weak self] () -> () in
self?.doSomething()
}

关于闭包内存泄漏的一些来源:

Shall we always use [unowned self] inside closure in Swift

http://blog.stablekernel.com/how-to-prevent-memory-leaks-in-swift-closures

关于ios - 用户声称 iOS 应用程序导致其他 iOS 应用程序关闭?那是一回事吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41863500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com