Соединение делегата Swift для React NativeIOS

Программируем под IOS
Ответить
Anonymous
 Соединение делегата Swift для React Native

Сообщение Anonymous »

Я пытаюсь создать поддержку React Native для моей реализации Swift SDK.
Метод .initialise() моего SDK имеет параметр делегата для успеха и неудачи.Хотя я постарался преобразовать все свои общедоступные классы и модели в @objc для совместимости, в React Native нет логики делегирования, поэтому я борюсь с альтернативами.
1st Вариант: изменить логику на обратные вызовы и в случаях, когда необходимо запускать асинхронно, полагаться на NSNotifications? Не уверен в этом подходе.

Код: Выделить всё

@objc(MySDKBridge)
class MySDKBridge: NSObject {
@objc func initialise() {
let myDelegate = InitialiseDelegate()
MySDK.shared.initialise(delegate: myDelegate)
}
}

extension MySDKBridge: InitialiseDelegate {
func sendEventToReactNative(name: String, body: [String: Any]) {
if let bridge = self.bridge {
bridge.eventDispatcher().sendAppEvent(withName: name, body: body)
}
}

func initialiseCompleted() {
sendEventToReactNative(name: "InitialisationCompleted", body: ["status": "success"])
}

func initialiseFailed(message: String) {
sendEventToReactNative(name: "InitialisationFailed", body: ["status": "failure", "message": message])
}
}
2-й вариант: вместо этого изменить логику на обратные вызовы (которые, я думаю, React будет поддерживать) и, возможно, полагаться на NSNotifications и отправлять аналогичные события, как указано выше, для этих асинхронных случаев?

Подробнее здесь: https://stackoverflow.com/questions/791 ... act-native
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»