ios - 如何快速解决警告 "The Network Connection Was Lost"?

标签 ios swift

我正在尝试通过向服务器发出请求来获取员工数据,获取数据后我将使用它来更新 UI。实际上我从服务器取回了数据,但我不知道为什么我收到错误消息

The Network Connection Was Lost

当我尝试将结果分配给一个值时出现该错误消息。这是发出请求时的代码,基本上就是alamofire。

// send request to the server to get employee data
let loginEndPoint = EndPoint.login(loginUser: username!, password: password!, registrationID: registrationID!)

NetworkingService.fetchJSONData(endPoint: loginEndPoint, completion: { (result) in
     print("a")
     switch result {
     case .failure(let error) :
         self.activityIndicator.stopAnimating()
         self.showAlert(alertTitle: "Sorry", alertMessage: error.localizedDescription, actionTitle: "Back")
     case .success(let jsonFromServer) :

         let json = jsonFromServer as! JSON
         let validity = json["valid"].intValue

         if validity == 0 {
             print("c")
             guard let messageFromServer = json["message"].string else {return}
             self.activityIndicator.stopAnimating()
             self.showAlert(alertTitle: "Sorry", alertMessage: messageFromServer, actionTitle: "Back")
         } else {
             print("b")
             guard let employeeDataFromServer = json["data"].dictionaryObject else {return}
             self.dataOfEmployee = Employee(dictionary: employeeDataFromServer)
             print(self.dataOfEmployee) <--- the problem is in here

             self.activityIndicator.stopAnimating()
         }      
     }       
})

调试区打印了“a”和“b”,说明网络连接没有问题。事实上,当我 print(employeeDataFromServer) 时,来自服务器的数据可用。

但是当我通过首先创建 Employee 对象将结果分配给属性 dataOfEmployee 时。然后当我 print(self.dataOfEmployee) 时。我收到错误“网络连接丢失”。

我真的不明白为什么会这样。这里出了什么问题???

这是我用来制作对象的员工结构

struct Employee {

    var name : String
    var NIK : Int
    var department : String
    var level : String
    var imagePath : String?
    var company : String
    var superior : Int

    init (dictionary: [String:Any]) {
        print("x")
        name = dictionary["NamaKaryawan"] as! String
        NIK = dictionary["NIK"] as! Int
        department = dictionary["Departmen"] as! String
        level = dictionary["Level"] as! String
        superior = dictionary["Superior"] as! Int
        company = dictionary["Company"] as! String
        imagePath = dictionary["Url"] as? String
        print("z")
    }
}

我认为创建员工对象时没有问题,因为打印了“x”和“z”。

最佳答案

这很奇怪,我认为它们没有关系。尝试在打印 dataOfEmployee 的地方放置一个断点,然后查看变量窗口。您可以右键单击它并打印描述吗?

关于ios - 如何快速解决警告 "The Network Connection Was Lost"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48634317/

相关文章:

ios - 更改 UISwitch 边框厚度?

快速绘制自定义圆

ios - 如何分离在文本字段上输入的表情符号(通过默认键盘)

ios - Swift "Cannot invoke ' - =' with argument list of type ' (@lvalue CGFloat, $T7)'

ios - 复制空数组有什么意义?

ios - 当用户使用 iOS Swift 从 Whats up、Skype 等第三方应用程序复制消息时,我们如何获取文本?

ios - 用户选择选项卡时如何重置 UITabBarController 的选项卡(或选项卡 Controller )?

swift - 在 Xcode 11.0 中滚动时 ImageView 框架没有改变 (11A420a)

ios - 无法以编程方式在我的导航栏中获取 UISearchController

ios - 带导航栏的搜索 Controller