将数组数据从Swift传递到React Native

时间:2019-11-12 15:24:54

标签: swift react-native react-native-ios

我正在使用react-native插件,不确定为什么我的收集数据没有通过。

这是我的快捷代码:

    @objc(getItems:rejecter:)
    func getItems:rejecter(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) -> Void {
        return resolve(itemManager.items)
    }

其中itemManager.items是具有这种结构[[ name = Meh 1, primary : Yes ], [ name = Meh 2, primary : No ]]

的数组

从JavaScript调用此函数可获得具有正确数量的项目的数组,但它们是null而不是我期望的实际json对象。

有人可以建议如何解决这个问题吗?谢谢

1 个答案:

答案 0 :(得分:3)

问题在于自定义类或结构无法自动转换为JSON,因此首先,您需要使用每个道具作为字典键将每个道具解析为NSDictionary。

  @objc(getItems:rejecter:)
  func getItems:rejecter(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) -> Void {
    let result: NSMutableArray = []
    for item in items {
      let yourAuxDic: NSMutableDictionary = [:]
      yourAuxDic["name"] = item.name
      yourAuxDic["primary"] = item.primary
      result.add(yourAuxDic)
    }
    resolve(result)
  }

希望有帮助!