【问题标题】:"applicationDidReceiveMemoryWarning" memory warning alert in AppDelegate swfit4.2?AppDelegate swfit4.2中的“applicationDidReceiveMemoryWarning”内存警告警报?
【发布时间】:2019-05-09 23:05:13
【问题描述】:

我们已经在应用程序的 AppDelegate 类中处理了内存警告警报。当它调用“applicationDidReceiveMemoryWarning”函数时导航到主屏幕但未显示警报? 我将在下面添加我的代码。谁能帮帮我?

func applicationDidReceiveMemoryWarning(_ application: UIApplication) {
    resetWhenMemoryWarningPresented()

}

// To get the current view controller
func getCurrentViewController(_ vc: UIViewController) -> UIViewController? {
    if let presentViewControllers = vc.presentedViewController {
        return getCurrentViewController(presentViewControllers)
    }
    else if let splitViewControllers = vc as? UISplitViewController, splitViewControllers.viewControllers.count > 0 {
        return getCurrentViewController(splitViewControllers.viewControllers.last!)
    }
    else if let navigationControllers = vc as? UINavigationController, navigationControllers.viewControllers.count > 0 {
        return getCurrentViewController(navigationControllers.topViewController!)
    }
    else if let tabBarViewControllers = vc as? UITabBarController {
        if let selectedViewController = tabBarViewControllers.selectedViewController {
            return getCurrentViewController(selectedViewController)
        }
    }
    return vc
}

public func resetWhenMemoryWarningPresented() {
    guard let rootViewControllers = self.window?.rootViewController else {
        return
    }
    if let viewControllers = getCurrentViewController(rootViewControllers) {
        weak var controller = viewControllers
        print("VIEWCONTROLLER NAME \(String(describing: controller))")
        let window = UIApplication.shared.keyWindow!
        let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
        weak var viewController = storyboard.instantiateViewController(withIdentifier: "Navigation") as? UINavigationController
        window.rootViewController = viewController
        window.makeKeyAndVisible()
        viewController?.showConfirmAlert(title: "Memory Warning", message: "Your phone is running on low memory. Please close other apps before continuing or you may experience unexpected behaviour", buttonTitle: "OK", buttonStyle: .default) { (action) in
            controller = nil
            viewController = nil
        }
    }
}

【问题讨论】:

    标签: ios swift memory-management alertview


    【解决方案1】:

    您不应要求用户关闭某些应用,但应清除 didReceiveMemoryWarning 方法中的变量。看看这个 StackOverflow 帖子:How to implement didReceiveMemoryWarning?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-09
      • 2011-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-21
      相关资源
      最近更新 更多