Ios 我的JS端无法识别objc方法

Ios 我的JS端无法识别objc方法,ios,objective-c,swift,xcode,Ios,Objective C,Swift,Xcode,我正在尝试将我的obj-c方法调用到我的js文件。 它不断抛出错误“updateUI不是可识别的object-c方法” 这里可能有什么错误 @objc func updateUI(_ statisticsCollection: HKStatisticsCollection, _ resolve: RCTPromiseResolveBlock, rejecter reject: RCTPromiseRejectBlock) { struct

我正在尝试将我的obj-c方法调用到我的js文件。
它不断抛出错误“updateUI不是可识别的object-c方法”
这里可能有什么错误

@objc
  func updateUI(_ statisticsCollection: HKStatisticsCollection,  _ resolve: RCTPromiseResolveBlock,
                rejecter reject: RCTPromiseRejectBlock) {
    
    struct Step {
        let id = UUID()
      var count: Int?
        var date: Date?
    }
   
      let startDate = Calendar.current.date(byAdding: .day, value: -7, to: Date())!
      let endDate = Date()
      
      statisticsCollection.enumerateStatistics(from: startDate, to: endDate) { (statistics, stop) in
          
          let count = statistics.sumQuantity()?.doubleValue(for: .count())
          let steps = Int(count ?? 0)
        
        var stepCount = [Step]()
        var tempStepCount = Step(count: steps, date: Date())
          
        tempStepCount.count = steps
        tempStepCount.date = startDate
        stepCount.append(tempStepCount)
      }
    resolve(Step())
      
  }

更新:
从HealthKit检索步骤计数的查询:

@objc
  func updateStepsCount(_ statisticsCollection: HKStatisticsCollection, _ resolve: @escaping RCTPromiseResolveBlock,
                        rejecter reject: @escaping (RCTPromiseRejectBlock) -> Void) {
      
      let stepType = HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.stepCount)!
      
      let startDate = Calendar.current.date(byAdding: .day, value: -7, to: Date())
      
      let anchorDate = Date.mondayAt12AM()
      
      let daily = DateComponents(day: 1)
      
      let predicate = HKQuery.predicateForSamples(withStart: startDate, end: Date(), options: .strictStartDate)
      
      let query = HKStatisticsCollectionQuery(quantityType: stepType, quantitySamplePredicate: predicate, options: .cumulativeSum, anchorDate: anchorDate, intervalComponents: daily)

          healthStore.execute(query)
      
  }

我的问题对吗
我是直接在JS文件中调用它,还是需要将它附加到一个对象中??
我对objc和swift非常陌生,我需要一些帮助。

您的
@objc
updateUI
方法有3个参数,您正在调用两个

试一试

根据您提供的代码,不可能知道您的
someStatisticsCollection
在js中来自何处

更新 我对ReactNative不是很熟悉,但基于它,似乎不可能将任何内容返回到js

不管怎样,你的代码

@objc
  func updateStepsCount(_ statisticsCollection: HKStatisticsCollection, _ resolve: @escaping RCTPromiseResolveBlock,
                        rejecter reject: @escaping (RCTPromiseRejectBlock) -> Void) 
似乎没有使用任何论点。如果你想知道这是否是一个正确的HealthKit查询,是否值得提出自己的问题


总之,您的
RCT\u EXTERN\u方法
签名必须与方法定义参数匹配。您的代码中没有这种情况。

谢谢,伙计。请检查我的最新问题。为此挣扎了好几天。我只想从我的JS文件中读取步数。我不能把一切都整合起来。不知何故,我设法获得了HealthKit的工作许可。
RCT_EXTERN_METHOD(updateUI: (HKStatisticsCollection)someStatisticsCollection
                  resolve: (RCTPromiseResolveBlock)resolve
                  rejecter:(RCTPromiseRejectBlock)reject)
@objc
  func updateStepsCount(_ statisticsCollection: HKStatisticsCollection, _ resolve: @escaping RCTPromiseResolveBlock,
                        rejecter reject: @escaping (RCTPromiseRejectBlock) -> Void)