将数组数据从 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)
}
希望对您有所帮助!
我正在开发一个 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)
}
希望对您有所帮助!