Передать необязательный JSON в Swift от реактивного - PullRequest
0 голосов
/ 18 мая 2018

Скажите, у меня есть следующий класс Swift:

@objc(ExampleClass)
  class ExampleClass: NSObject {
  init() {}
  @objc func exampleMethod(_ message: String, _ properties: [String: Any]? = nil) -> Void {}
}

и следующий заголовок:

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

@interface RCT_EXTERN_MODULE(ExampleClass, NSObject)

RCT_EXTERN_METHOD(exampleMethod:(NSString *)name (NSDictionary *)properties)
@end

Который я затем вызываю со следующим собственным кодом React:

import { NativeModules } from 'react-native'

NativeModules.ExampleClass.exampleMethod('example', {'hello': 'world'})

Это приводит к следующему сообщению об ошибке:

ExceptionsManager.js:73 Exception 'exampleMethod: is not a recognized Objective-C method.' was thrown while invoking trackEvent on target SegmentTracker with params (
    "example",
        {
        hello = world;
    }
)

При вызове так:

NativeModules.ExampleClass.exampleMethod('example')

Результат:

ExceptionsManager.js:73 Exception 'exampleMethod: is not a recognized Objective-C method.' was thrown while invoking trackEvent on target SegmentTracker with params (
    "example"
)

У меня есть два вопроса: 1) Как передать JSON из React Native в Swift? 2) Как правильно разрешить необязательные параметры в RCT_EXTERN_METHOD? И если это невозможно, как мне справиться со случаем, когда мне бы хотелось иногда передавать второй параметр, а иногда нет?

1 Ответ

0 голосов
/ 13 декабря 2018

Вы можете попробовать свойства типа NSDictionary, чтобы он соответствовал интерфейсу.Это может быть похоже на:

реакция-нативный-мост-передача-json-to-swift-функция

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...