Bra*_*ets 5 objective-c ios swift react-native react-native-ios
当我RCT_REMAP_METHOD(findEvents2, resolver:(RCTPromiseResolveBlock)resolve rejector:(RCTPromiseRejectBlock)reject)在界面内部添加.m文件后,Xcode就开始抱怨缺少@end。
我正在尝试从https://facebook.github.io/react-native/docs/native-modules-ios.html回调和Promise示例,同时也从目标C桥接到Swift。带有回调的findEvents1对我有效,但是我无法使带有Promise的findEvents2正常工作。
我在.m文件中添加了带有宏的方法定义:
#import "RCTBridgeModule.h"
@interface RCT_EXTERN_MODULE(EventManager, NSObject)
RCT_EXTERN_METHOD(findEvents1: (RCTResponseSenderBlock)callback)
RCT_REMAP_METHOD(findEvents2, resolver:(RCTPromiseResolveBlock)resolve rejector:(RCTPromiseRejectBlock)reject)
@end
Run Code Online (Sandbox Code Playgroud)
然后,我在.swift文件中实现了该方法:
@objc(EventManager)
class EventManager: NSObject {
func findEvents1(callback: (NSObject) -> () ) -> Void {
EventRequest(completion: EventRequest.CompletionHandler (
success: { (events) in
callback([events])
}, failure: { (error) in
callback([(error?.localizedDescription)!])
}, cancel: nil)
).dispatch()
}
func findEvent2....
}
Run Code Online (Sandbox Code Playgroud)
我不完全了解RCT_REMAP_METHOD宏的工作原理,我不明白为什么findEvent1可以工作,但是findEvent2不能。有人可以建议如何桥接此方法吗?
| 归档时间: |
|
| 查看次数: |
660 次 |
| 最近记录: |