使用:XCode 7,iPhone 5(iOS 8.3),WiFi,可达性(检查互联网连接)。 当我的应用程序处于后台时,我点击打开我的应用程序,它检查conncetion并加载一些功能,并在我尝试签名的一个函数中:
imageView.image = UIImage(named: "imagename")
错误:致命错误:在解包可选值时意外发现nil
仅当我的应用程序将applicationWillEnterForeground中的IBOutlet值更改为具有主视图控制器的函数时,才会发生这种情况 self.viewController.functionName()
class AppDelegate: UIResponder, UIApplicationDelegate {
var viewController:ViewController = ViewController()
func applicationWillEnterForeground(application: UIApplication) {
self.viewController.checkConn()
}
}
checkConn()检查与Reachability的连接并更改IBOutlets值,如.image和.text
有没有办法解决它?
答案 0 :(得分:2)
经过大量测试后,我发现这种方法效果很好:
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var viewController:ViewController?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {
viewController = self.window!.rootViewController as? ViewController
return true
}
func applicationWillEnterForeground(application: UIApplication) {
viewController!.checkConn()
}
}
答案 1 :(得分:0)
我假设这是你的崩溃发生的地方。
imageView.image = UIImage(named: "imagename")
如果您正在使用" Images.xcassets"管理您的图像文件。确保" imagename"存在。