Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在模拟器上运行的应用程序+;物理设备突然出现黑屏_Ios_Swift_Xcode - Fatal编程技术网

Ios 在模拟器上运行的应用程序+;物理设备突然出现黑屏

Ios 在模拟器上运行的应用程序+;物理设备突然出现黑屏,ios,swift,xcode,Ios,Swift,Xcode,运行带有Swift 4的Xcode 9.4.1时,当它在任何视图控制器上启动时,应用程序会突然卡在黑屏上。没有崩溃(也没有断点),当注册屏幕打开时,视图在后台可见,同时显示推送通知权限窗口。接受窗口后,屏幕返回黑色 App Delegate运行时没有问题,日志看起来正常,就好像视图加载正确一样 我尝试清理构建文件夹,删除派生数据,重置模拟器,并重新启动手机和Xcode,但没有成功。该设备是一款iPhone6,模拟器在各种iPhone上进行了测试 编辑:当在应用程序代理中删除此功能时,应用程序会工

运行带有Swift 4的Xcode 9.4.1时,当它在任何视图控制器上启动时,应用程序会突然卡在黑屏上。没有崩溃(也没有断点),当注册屏幕打开时,视图在后台可见,同时显示推送通知权限窗口。接受窗口后,屏幕返回黑色

App Delegate运行时没有问题,日志看起来正常,就好像视图加载正确一样

我尝试清理构建文件夹,删除派生数据,重置模拟器,并重新启动手机和Xcode,但没有成功。该设备是一款iPhone6,模拟器在各种iPhone上进行了测试

编辑:当在应用程序代理中删除此功能时,应用程序会工作

func applicationDidBecomeActive(_ application: UIApplication) {        
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    appDelegate.window = UIWindow(frame: UIScreen.main.bounds)
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)

    if application.applicationIconBadgeNumber > 0 {
        let startVC = mainStoryboard.instantiateViewController(withIdentifier: "ViewController")
        appDelegate.window?.rootViewController = startVC
        appDelegate.window?.makeKeyAndVisible()
        application.applicationIconBadgeNumber = 0
    }

}

以下行有问题:

 appDelegate.window = UIWindow(frame: UIScreen.main.bounds)
您要做的是将新窗口对象与AppDelegate的关键窗口的帧一起设置

您应该将代码更新为:

func applicationDidBecomeActive(_ application: UIApplication) {

    if application.applicationIconBadgeNumber > 0 {

        let appDelegate = UIApplication.shared.delegate as! AppDelegate
        let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let startVC = mainStoryboard.instantiateViewController(withIdentifier: "ViewController")
        appDelegate.window?.rootViewController = startVC
        appDelegate.window?.makeKeyAndVisible()
        application.applicationIconBadgeNumber = 0
    }

}

尝试并分享结果。

显示推送通知代码刚刚在其他设备上更新了问题,是否正常?如果“applicationBadgeNumber==0”不确定原因,但当我删除applicationIDBecMeactive函数时,应用程序正常工作,有什么想法吗?