NSObject的没有一个成员名为键错误 [英] NSObject does not have a member named Key error

查看:138
本文介绍了NSObject的没有一个成员名为键错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要构造如下所示格式的JSON对象。

I need to construct a JSON object in the format shown below.

{
  "DeviceCredentials": {
    "UniqueId": "sample string 1"
  },
  "Handovers": [
    {
      "Occasions": [
        {
          "Id": 1
        },
        {
          "Id": 1
        }
      ]
    }
  ]
}

有一个问题,但与场合阵列虽然。 场合对象的不同而不同。有时只能有一次,有时候多。由于这是动态的,我写了下面的方法来创建这个数组。

There is a issue though with the Occasions array though. The number of Occasion objects vary. Sometimes there can be only one Occasion, sometimes multiple. Since this is dynamic I wrote the below method to create this array.

func getOccasionArray(handover: Handover) -> JSON {
    var occArray = [[String: NSNumber]]()
    for occ in handover.occasions {
        let occasion = occ as Occasion
        var obj = ["Id": occasion.id!]
        occArray.append(obj)
    }
    let json = JSON(occArray)
    return json
}

我使用 SwiftyJSON 库创建数组转换为JSON。这里的 JSON 变量返回的结果看起来像它只有一个场合切换。

I use the SwiftyJSON library to convert the created array to JSON. Here's the returned result of json variable looks like for a Handover which has only one Occasion.

[
  {
    "Id" : 243468
  }
]

到目前为止好。问题是我无法插入到更大的JSON响应这一点。简单地调用该方法是这样给出了错误的'NSObject的'没有一个名为'重点'成员

var parameters = [String: NSObject]()

parameters = [
    "DeviceCredentials": [
        "UniqueId": "1212121212"
    ],
    "Handovers": [
        [
            "Occasions": getOccasionArray(handover)
        ]
    ]
]

我试图返回的值转换为一个数组 getOc​​casionArray(移交).arrayValue ,但没有任何变化。

这是如何解决这一问题的任何想法?

Any idea on how to fix this?

感谢。

推荐答案

您不需要SwiftyJSON这里,那么:

You don't need SwiftyJSON here then:

请您'getOc​​casionArray返回[字符串:NSObject的]

Make your 'getOccasionArray' to return a [String: NSObject]

func getOccasionArray(handover: Handover) -> [String: NSObject] {
  var occArray = [[String: NSNumber]]()
  for occ in handover.occasions {
    let occasion = occ as Occasion
    var obj = ["Id": occasion.id!]
    occArray.append(obj)
  }
  return occArray
}

参数定义为[字符串:NSObject的]:

Define parameters as [String: NSObject]:

var parameters = [[String: NSObject]]()

var json: [String: NSObject] = getOccasionArray(handover)        

parameters = [["DeviceCredentials": ["UniqueId": "1212121212"], "Handovers": ["Occasions": json]]]

这篇关于NSObject的没有一个成员名为键错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆