gpt4 book ai didi

ios - 数组映射在Swift 3中不再起作用

转载 作者:行者123 更新时间:2023-12-01 18:07:09 26 4
gpt4 key购买 nike

在Swift 2中,我具有以下结构设置:

struct LogInfo {
var logNumber: Int
var logID: String
var species: String
var diameter: Float
var formClass: Int
var numLogs: Float
var boardFootage: Double

static func jsonArray(array : [LogInfo]) -> [AnyObject] {
return array.map{$0.jsonRepresentation}
}

var jsonRepresentation : [String: AnyObject] {
return [
"logNumber": String(logNumber) as AnyObject,
"logID": logID as AnyObject,
"species": species as AnyObject,
"diameter": String(diameter) as AnyObject,
"formClass": String(formClass) as AnyObject,
"numLogs": String(numLogs) as AnyObject,
"boardFootage": String(boardFootage) as AnyObject
]
}
}

在此代码中,我代码中间的方法“jsonArray”返回此错误:

“类型'[String:AnyObject]'的结果值与关闭结果类型'AnyObject'不符”“

从下面的jsonRepresentation中可以看到,json数据将包含各种不同的数据类型。

如您所见,我试图将jsonRepresentation数组中的每个元素都强制转换为“AnyObject”(xCode建议在升级向导中执行此操作)-但我的数组映射仍然遇到上述错误。

任何想法如何解决?

最佳答案

只需将 jsonArray 方法中的[AnyObject]更改为[[String: AnyObject]]即可。

看来您是在作为[String: AnyObject]实例的map函数中返回 jsonRepresentation ,而Swift 3不再隐式将[String: AnyObject]转换为AnyObject

static func jsonArray(array : [LogInfo]) -> [[String: AnyObject]] {
return array.map{$0.jsonRepresentation}
}

关于ios - 数组映射在Swift 3中不再起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39840461/

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