你好,我试图在通过目标C导出的javascript中调用函数。当我在javascript中调用函数时,我的应用崩溃了。
RCT_EXPORT_METHOD(getModelAsync:()
resolver:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject)
{
NSError *error;
NSString *contents = [[UIDevice currentDevice] model];
if (contents) {
resolve(contents);
} else {
reject(@"Test", @"Something is broken",error);
}
}
在if语句上失败,并出现以下错误:线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x0)
if (!RCTIsIdentifierHead(**input)) {
return NO;
欢迎所有帮助,谢谢!
答案 0 :(得分:0)
我今天遇到了这个问题,并设法解决了这个问题。看来函数参数类型不匹配。函数类型不兼容时,似乎会触发此错误。诸如以下代码片段之类的东西会触发此错误,因为字典与字符串类型不兼容,因此无法正确地转换函数参数。
Module.m
RCT_EXTERN_METHOD(myFunction: (NSDictionary)options)
Module.swift
@objc
func myFunction(_ options: String) -> Void {
...
}
要修复此问题,请确保您正在执行以下操作:
FixedModule.m
RCT_EXTERN_METHOD(myFunction: (NSDictionary)options)
FixedModule.swift
@objc
func myFunction(_ options: NSDictionary) -> Void {
...
}
我希望这会有所帮助!