gpt4 book ai didi

ios - AlamofireJson/EVReflection - NSArray 元素无法匹配中的 Swift 数组元素类型

转载 作者:行者123 更新时间:2023-11-29 00:51:07 26 4
gpt4 key购买 nike

还在项目的 GitHub 中将这个问题作为一个错误提出:https://github.com/evermeer/AlamofireJsonToObjects/issues/24

使用框架:Alamofire(用于休息)AlamofireJsonToObjects(反序列化 JSON)(依赖于 EVReflection)

我在尝试获取要反序列化的对象内的对象数组时遇到问题。输出显示 fatal error: NSArray element failed to match the Swift Array Element type 然后调试器在 EVReflection.swift mi = Mirror(reflecting: theValue) 的第 560 行中断 错误:Thread 1: EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0)

当它不在数组中时,它能够反序列化嵌套对象,所以不确定这里可能有什么问题。不过,我会在下面粘贴一些代码,这样您就可以看到我的过程。

Alamofire 请求,当我要求它打印 debugDescription 时发生错误

Alamofire.request(.GET, "http://server.com/api/get/all", headers: getAuthenticationHeaders()).
validate().
responseArray { (response: Result<[MyPrimaryObject], NSError>) in
if(response.isSuccess){
print(response.debugDescription)
success(response.value)
}
if(response.isFailure){
let error : NSError = response.error!
NSLog("API failure: \(error.debugDescription)")
failure(error)
}
}

模型:

public class MyPrimaryObject : EVObject{

public var myPrimaryObjectId : NSUUID?
public var name : String = ""
public var myObjectDescription: String?

public var numberOfOccurrences : Int = 0
public var positiveResponsePercentage : Float = 0

public var secondaryObjects : [MySecondaryObject]?

override public func propertyMapping() -> [(String?, String?)] {
return [("myObjectDescription","Description")]

}
}

public class MySecondaryObject : EVObject {
public var mySecondaryObjectId : Int = 0
public var dateRecorded : NSDate?
public var rating : Int = 0
public var userRemarks : String?
}

还应注意,当 API 响应中的 secondaryObjects 为 null 时,MyPrimaryObject 会被完美解析。

我显然已经简化了,我很乐意私下与您分享实际代码。任何帮助将不胜感激!非常感谢!

最佳答案

正如我所报道的 https://github.com/evermeer/AlamofireJsonToObjects/issues/24

问题是,当您有子对象数组时,帕斯卡大小写转换无法获取正确的类型。因此,字典被放入数组中,您将收到错误。

该修复已在 EVReflection 2.38.3 中发布

关于ios - AlamofireJson/EVReflection - NSArray 元素无法匹配中的 Swift 数组元素类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38138326/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com