小编Chr*_*ant的帖子

带有异步函数抛出的 Swift 中的 React-Native 模块不是公认的 Objective-C 方法

我正在尝试根据react-native的文档导出一个swift模块,但是当我尝试在我的javascript文件中调用此函数时遇到以下错误。我相信这个问题与在我的快速代码中调用方法有关async。所以我不确定async在react-native中创建本机模块时如何从我的swift文件导出和调用方法。

异常错误object-c方法

这是 AppleMusicAuth.swift 文件,其中包含async我尝试导出的方法

//
//  AppleMusicAuth.swift
//
//
//

import Foundation
import MusicKit

@available(iOS 15.0, *)
@objc(AppleMusicAuth)
class AppleMusicAuth: NSObject {

  @objc
  func getAuthStatus() async -> Void {
    let response = await MusicAuthorization.request()
    print(response)
  }
}

Run Code Online (Sandbox Code Playgroud)

以及我的 AppleMusicAuth.m 文件,该文件使用将RCT_EXTERN_METHOD模块导出到我的 JS 应用程序的方法

//
//  AppleMusicAuth.m
//
//
//

#import <Foundation/Foundation.h>

#import <React/RCTBridgeModule.h>


@interface RCT_EXTERN_MODULE(AppleMusicAuth, NSObject)

RCT_EXTERN_METHOD(getAuthStatus)

@end
Run Code Online (Sandbox Code Playgroud)

以及导入和调用使用的模块和方法的Javascript文件

import { NativeModules } from 'react-native';
const { AppleMusicAuth } …
Run Code Online (Sandbox Code Playgroud)

javascript objective-c reactjs swift react-native

6
推荐指数
1
解决办法
1566
查看次数

标签 统计

javascript ×1

objective-c ×1

react-native ×1

reactjs ×1

swift ×1