Функции класса Bridge в React Native - PullRequest
0 голосов
/ 03 мая 2018

Скажем, у меня есть класс под названием ExampleClass.

Скажи, что я тогда пишу код так:

@objc(ExampleClass)
class ExampleClass: NSObject {
  @objc class func exampleFunc() -> Void {

  }
}

С заголовком файла Objective-C, например, так:

#import <Foundation/Foundation.h>
#import <React/RCTBridgeModule.h>

@interface RCT_EXTERN_MODULE(ExampleClass, NSObject)
  RCT_EXTERN_METHOD(exampleFunc)
@end

Что я тогда использую в своем приложении React Native, например:

console.log('exampleClass', React.NativeModules.ExampleClass);
console.log('exampleFunc', React.NativeModules.ExampleClass.exampleFunc)

Первый консольный журнал приводит к {exampleFunc: f} Вторые результаты в undefined,

Вызов функции: React.NativeModules.ExampleClass.exampleFunc() приводит к сбою приложения с:

Исключение: "exampleFunc не является признанным методом Objective-C". был брошен при вызове setupLogger для целевого ExampleClass с параметрами (

При изменении только Swift, чтобы он читал:

@objc(ExampleClass)
class ExampleClass: NSObject {
  @obj func exampleFunc() -> Void {

  }
}

приводит к вызову функции (что да) в настоящее время ничего не делает.

Как я могу предоставить переменные уровня класса? Я пытаюсь написать функциональный Swift и использую методы класса для имитации структур.

...