Swift + iOS,HANDYJSON 线程 1:EXC_BAD_ACCESS(代码=1,地址=0x20c7f4194)
Swift + iOS , HANDYJSON Thread 1: EXC_BAD_ACCESS (code=1, address=0x20c7f4194)
从 api 解析 JSON 后反序列化结构时应用程序崩溃,
xCode 更新到 9.3 版本后,开始出现崩溃
,我无法弄清楚或诊断问题是什么或为什么会发生,
崩溃或错误发生在这里,如下图所示;
HANDYJSON/NominalTypeDescriptor/numberOfFields
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?
}
提前致谢!
该问题已在 HandyJSON 项目中报告,似乎有解决方案。所以你有三个选择
- 降级到 Swift 4.0 并等待下一个版本
- 下载代码并自己实施the fix
- 寻找 JSON 的其他解决方案,例如 Swift 使用 Codable 内置支持。
从 api 解析 JSON 后反序列化结构时应用程序崩溃, xCode 更新到 9.3 版本后,开始出现崩溃 ,我无法弄清楚或诊断问题是什么或为什么会发生, 崩溃或错误发生在这里,如下图所示;
HANDYJSON/NominalTypeDescriptor/numberOfFields
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?
}
提前致谢!
该问题已在 HandyJSON 项目中报告,似乎有解决方案。所以你有三个选择
- 降级到 Swift 4.0 并等待下一个版本
- 下载代码并自己实施the fix
- 寻找 JSON 的其他解决方案,例如 Swift 使用 Codable 内置支持。