ios - 从 Javascript 调用包装器函数会导致应用程序崩溃 - React-Native
问题描述
您好,我正在尝试在 javascript 中调用我通过 Objective C 导出的函数。当我在 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 (code=1, address=0x0)
if (!RCTIsIdentifierHead(**input)) {
return NO;
欢迎大家帮忙,谢谢!
解决方案
我今天遇到了这个问题并设法解决了它。看起来函数参数类型不匹配。当函数类型不兼容时,似乎会触发此错误。类似于以下代码片段的内容会触发此错误,因为字典与字符串类型不兼容,因此无法正确转换函数参数。
模块.m
RCT_EXTERN_METHOD(myFunction: (NSDictionary)options)
模块.swift
@objc
func myFunction(_ options: String) -> Void {
...
}
要修复它,请确保您正在执行以下操作:
固定模块.m
RCT_EXTERN_METHOD(myFunction: (NSDictionary)options)
FixedModule.swift
@objc
func myFunction(_ options: NSDictionary) -> Void {
...
}
我希望这有帮助!
推荐阅读
- html - 调整大小后在引导程序中居中图像
- css - 如何在“paper-dropdown-menu”中设置“paper-listbox”的“border-radius”?
- python - Counting the number of function calls
- dart - 飞镖中的流落后一步
- json - 从 JMESPATH 表达式中选择中级属性
- firebase - 离线时的 Firebase 实时数据库事务
- android - Categories' 与属性 android:iconTint (attr) color 不兼容
- ios - 尝试将自定义单元格添加到表格视图中时出错
- sql - SQL整合数据最佳策略
- python - 彩色输出 python