将Swift 3迁移到Swift 4.2,现在我在IBOutlet上一无所获

问题描述

我将IOS Xcode项目从Swift3转换并更正为Swift4.2。这是一个非常艰难的时期,但是现在解决了所有构建错误,在测试应用程序时我遇到了错误(Yeeeeah ...)

当应用尝试使用Iboutlet时,它会显示下一次崩溃:

致命错误:意外地发现nil,同时隐式展开了一个可选值:文件

代码是这样的:

import UIKit
import SwiftyJSON
import JLSlideMenuController
import Alamofire

class PrincipalViewController: JLSlideNavigationController,UIImagePickerControllerDelegate,URLSessionDownloadDelegate,UIGestureRecognizerDelegate {
    
    @IBOutlet weak var scrollViewWeather: UIScrollView!
    
    @IBOutlet var profileImage:UIImageView!
    @IBOutlet var parentView: UIView!
    @IBOutlet var lblUserName:UILabel!
    @IBOutlet var menuButton:UIButton!
    var jsonVar:JSON!
    var rutasdisponibles : [Ruta]!
    var userDefaults = UserDefaults.standard
    
    var viewDayArray = [UIView](repeating: UIView(),count: 7)
    var labelDayArray = [UILabel](repeating: UILabel(),count: 7)
    var labelTempDayArray = [UILabel](repeating: UILabel(),count: 7)
    var ivDayArray = [UIImageView](repeating: UIImageView(),count: 7)
    
    var taskDescargaKmls : URLSessionTask!
    var contador = 1
    
    @IBOutlet weak var btMisRutas: UIButton!
    @IBOutlet weak var btRutas: UIButton!
    @IBOutlet weak var btInfoMunicipio: UIButton!
    
    var jlSlide: JLSlideNavigationController!
    
    lazy var session : Foundation.URLSession = {
        let config = URLSessionConfiguration.ephemeral
        config.allowsCellularaccess = false
        let session = Foundation.URLSession(configuration: config,delegate: self,delegateQueue: OperationQueue.main)
        return session
    }()
    
    
    
    override func viewWillAppear(_ animated: Bool) {
        
        super.viewWillAppear(true)
        
        UIApplication.shared.isstatusBarHidden = false
        profileImage.layer.borderColor = UIColor.lightGray.cgColor
        
        let lang = UserDefaults.standard.string(forKey: "LANG");
        btRutas.setTitle(Languages.translateText("rutas",language: lang!),for: UIControl.State())
        btInfoMunicipio.setTitle(Languages.translateText("info_municipio",for: UIControl.State())
        btMisRutas.setTitle(Languages.translateText("mis_rutas",for: UIControl.State())
        
        if(!Onlinestatus.isConnectedToNetwork()){
            scrollViewWeather.isHidden = true
        }
        
        
    }
    
    @IBAction func sideMenu(_ sender: UIButton) {
        if menuIsPresented(){
            self.hideMenu(animated: true)
        }
        else{
            self.showMenu(animated: true)
            
        }
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let configuration = URLSessionConfiguration.background(withIdentifier: "com.incentea.ocorgo.background")
        
        let gesture = UITapGestureRecognizer(target: self,action: #selector(PrincipalViewController.closeMenu(_:)))
        gesture.delegate = self
        self.parentView.addGestureRecognizer(gesture) // The crash here
        ...

我尝试删除DerivatedData,清理并构建项目aaaa,什么也没有。尝试删除情节提要中的parentview链接,然后再次链接,什么也没有。总是相同的错误。它在所有IBOutlet元素中。在Swift3上有值,但在Swift4.2上没有值。

这段代码在Swift3上运行时没有崩溃。转换为Swift4.2时出现了问题。

有人知道如何解决这个严重的错误吗?

对不起,英语...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)