Swift&x2B;iOS,HANDYJSON线程1:EXC_坏_访问(代码=1,地址=0x20c7f4194)

Swift&x2B;iOS,HANDYJSON线程1:EXC_坏_访问(代码=1,地址=0x20c7f4194),ios,json,swift,deserialization,xcode9.3,Ios,Json,Swift,Deserialization,Xcode9.3,从api解析JSON后反序列化结构时,应用程序崩溃, 将xCode更新到9.3版后,开始出现崩溃 ,我无法找出或诊断出问题所在或原因, 崩溃或错误发生在此处,如下图所示 提前谢谢 HandyJSON项目中已经报告了这个问题,似乎有一个解决方案。所以你有三个选择 降级至Swift 4.0并等待下一版本 下载代码并自己实现 寻找其他JSON解决方案,比如使用Codable的Swift内置支持 请以文本形式显示您的代码以及所有相关部分。我忍不住注意到HandyJSON项目自述文件中的以下内容:“Ha

从api解析JSON后反序列化结构时,应用程序崩溃, 将xCode更新到9.3版后,开始出现崩溃 ,我无法找出或诊断出问题所在或原因, 崩溃或错误发生在此处,如下图所示


提前谢谢

HandyJSON项目中已经报告了这个问题,似乎有一个解决方案。所以你有三个选择

  • 降级至Swift 4.0并等待下一版本
  • 下载代码并自己实现
  • 寻找其他JSON解决方案,比如使用Codable的Swift内置支持
    请以文本形式显示您的代码以及所有相关部分。我忍不住注意到HandyJSON项目自述文件中的以下内容:“HandyJSON完全依赖于从Swift运行时代码推断出的内存布局规则。我们正在关注它,如果它发生变化,我们将关注它的每一点。”
    import UIKit
    import HandyJSON
    import EventKit
    
    class PlayersViewController:UIViewController{
        var personsArray=[PersonData]()
    
                func getAllPlayers(){
                    let params = ["id":"5"]
                    Communicator.performAsyncRequest(httpMethod: .post, apiName:Helper.sharedInstance().getActivityWithoutSyncID, parameters: params , showHUD: false) { (isSuccess, error, response, message) in
    
                        if isSuccess && response != nil {
    
                            let jsonData = try! JSONSerialization.data(withJSONObject: response as Any, options: JSONSerialization.WritingOptions.prettyPrinted)
                            let jsonString = NSString(data: jsonData, encoding: String.Encoding.utf8.rawValue)! as String
    
                            print(jsonString)
    
                            if let Persons = PersonStruct.deserialize(from: jsonString) {
                                if Persons.Status == "S200"{
                                    for person in PersonsStruct.Data {
                                        self.personsArray.append(person)
                                    }
                                }
                            }
                          }
                        }
             }
            struct PersonStruct: HandyJSON {
                var Status:String?
                var Data=[PersonData]()
                var Error = [String]()
                var Extra = SyncActivityStructExtra()
            }
            struct PersonData:HandyJSON{
                var id:String?
                var name:String?
                var phoneNumber:String?    
            }