Ben*_*ter 3 ios reactjs swift react-native
我正在尝试将我的Swift视图与我的React-Native项目相关联.我想出了如何显示它,但现在当我尝试设置属性时,我收到此错误消息:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Switch setMessage:]: unrecognized selector sent to instance 0x7f96b270de70'
Run Code Online (Sandbox Code Playgroud)
在我的react-native代码中,我正在做:
const SwitchNative = requireNativeComponent('Switch', Switch);
class Switch extends Component {
render() {
return (
<SwitchNative message="message will be" style={this.props.style} />
);
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我的SwiftBridge中执行此操作:
// SwiftBridge.h
#import "RCTView.h"
@interface SwitchBridge : RCTView
@property (nonatomic, assign) NSString *message;
@end
// SwiftBridge.m
#import "RCTBridgeModule.h"
#import "RCTViewManager.h"
#import "SwitchBridge.h"
@interface RCT_EXTERN_MODULE(SwitchManager, RCTViewManager)
RCT_EXPORT_VIEW_PROPERTY(message, NSString)
@end
Run Code Online (Sandbox Code Playgroud)
最后我在Swift课程中有这个Switch.swift:
...
public func setMessage(message: String) {
NSLog("It's working well");
}
...
Run Code Online (Sandbox Code Playgroud)
不知道为什么它找不到我的setMessage功能.
React Native试图调用,-[Switch setMessage:]但你已经定义了-[Switch setMessage]没有任何参数.在Swift方法签名中添加一个参数:
public func setMessage(_ message: String)
Run Code Online (Sandbox Code Playgroud)
您可能还需要@objc根据您的Swift版本来注释您的方法.
| 归档时间: |
|
| 查看次数: |
4708 次 |
| 最近记录: |