【问题标题】:Combine Multiple NSMutableDictionary组合多个 NSMutableDictionary
【发布时间】:2016-02-10 04:09:19
【问题描述】:

我有一个递归函数,它将以前的字典添加到新字典中,但使用 addEntriesFromDictionary 会出错

这是我的示例代码(已编辑)

    func fetchAllSWApiList(strUrl: String, strArrayCallback: NSMutableDictionary){
    let swApiHandler = SwApiHandler()
    let url = strUrl

    swApiHandler.requestSWPApi(url, completionHandler: {(response, error) in
        if let responseDictionary = response as? Dictionary<String, AnyObject> {
            print("Did Detect a dictionary")
            strArrayCallback.addEntriesFromDictionary(responseDictionary)
        }
        guard  let nextPage: String = response!["next"]! as? String else {
            print("End Of Page")
            print(strArrayCallback.description)
           return
        }

        print(nextPage)
        self.fetchAllSWApiList(nextPage, strArrayCallback: strArrayCallback)

    })

}

如果您在我的代码中有更好的解决方案,可以递归地从获取的数据中返回组合列表,那就更好了。

编辑:这是错误

NSDictionary 不能隐式转换为 '[NSObject: AnyObject]'; 您的意思是使用 'as' 来显式转换吗?

在那之后我的代码将变成我应该保持原样还是编辑 NSpbject 部分?

strArrayCallback.addEntriesFromDictionary(response! as [NSObject : AnyObject])

EDIT2: 如果您想知道 JSON 模型是什么样的,请看这里的图片

【问题讨论】:

  • “给我错误”请不要让我们猜测。错误是什么?
  • @Jonah 请看我编辑的问题

标签: swift nsdictionary nsmutabledictionary


【解决方案1】:

您应该通过执行以下操作将您的响应转换为您期望的 Dictionary 类型:

if let responseDictionary = response as? Dictionary<String, AnyObject> {
    strArrayCallback.addEntriesFromDictionary(responseDictionary)
}

【讨论】:

  • 它以某种方式进入了 if 语句,但它没有附加到我现有的字典中。请查看我编辑的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-17
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2016-10-28
相关资源
最近更新 更多