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

Passing array data from Swift to React Native

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

这是我的 swift 代码:

    @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 对象。

谁能告诉我如何解决这个问题?谢谢

问题是自定义 类 或结构无法自动转换为 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)
  }

希望对您有所帮助!