【问题标题】:Insert an Object inside an Array swift在数组中插入一个对象 swift
【发布时间】:2020-10-15 11:58:21
【问题描述】:

我从 API 响应中得到一个对象,如下所示。

"Home":[
{
"type":"Something",
"id":"Something",
"interval":3,
"category":"Something",
"title":"Something",
"vc":[]
},
{
"type":"Something",
"id":"Something",
"TableFooterDisclaimer":"",
"category":"Something",
"title":"Something",
"vc":[
{
"Something":"Something",
"id":0,
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
},
{
"Something":"Something",
"id":1,
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
},
{
"Something":"Something",
"id":2,
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
}
]
},

我正在尝试再插入一条如下所示的记录。

let object : [String : Any] = [
"Something":"Something",
"id":1,
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
]

这个object 我试图插入Home 的第一个索引的vc 数组中,如下所示,但遇到问题。

if let serverArray = info["Home"] as? [[String: AnyObject]] {
     self.myArray = serverArray
     self.myArray![1]["vc"]?.insert(self.object, at: 0)
}

我尝试将 let object : [String:Any] 转换为 [String:AnyObject] 但这也没有用。

【问题讨论】:

  • 你试过 [String : String] 吗?
  • 不会是[String: String],我刚刚更新了sn-ps。
  • 您在哪一部分有问题? serverArray 有值,添加对象失败?
  • 您是否考虑过创建一个结构/结构并使用 Codable 解码您的数据?
  • @gcharita 只是问一下,我尝试插入的方式是否正确??

标签: ios arrays swift xcode


【解决方案1】:

你可以试试这样的:

if var serverArray = info["Home"] as? [[String: Any]] {
    if serverArray.count > 1 {
        var vcs = serverArray[1]["vc"] as? [[String: Any]]
        vcs?.insert(self.object, at: 0)
        serverArray[1]["vc"] = vcs
    }
    self.myArray = serverArray
}

但它有点丑。

使用@JoakimDanielson 评论的Codable and JSONDecoder 会更好。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-04
  • 2020-02-29
  • 1970-01-01
  • 2014-04-03
  • 1970-01-01
  • 2019-08-05
  • 1970-01-01
相关资源
最近更新 更多