Скажем, у меня есть класс под названием 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 и использую методы класса для имитации структур.