iOS controller pop 后 app 崩溃
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- ios, javascript, objective-c
- Área
- mobile-dev
Línea de trabajo
Comienza con HMJSCExecutor.m alrededor de la línea 1315 y reproduce la secuencia indicada: un UITabBarController nativo que gestiona varios HMViewControllers carga recursos JavaScript y, a continuación, se extrae el controlador de la barra de pestañas. Comprueba el crash relacionado con la destrucción registrada de HMJSContext y verifica que el componente se destruya normalmente sin producir un crash.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
描述
iOS controller pop 后 app 崩溃
Hummer version:
master branch
复现步骤
- 导出 tabbar 视图组件
2.组件中使用原生 UITabBarController
3.UITabBarController 管理多个 HMViewController
4.HMViewController 加载 js 资源
5.tabbar 所在控制器 pop 后 控制台输出 ‘HMJSContext 销毁’
6.执行到 HMJSCExecutor.m 1315行 后崩溃
预期结果
组件正常销毁
样例代码、屏幕截图或者仓库链接
js 使用:
let tabBar = new TabBar()
tabBar.items = [{},{}]
this.appendChild(tabBar)
tabbar 视图组件关键代码:
HMJSContext *context = [HMJSGlobal.globalObject currentContext:self.hmContext];
NSURL *url = [NSURL URLWithString:urlString];
if (url.scheme.length == 0) {
if (context) {
url = [[NSURL alloc] initWithString:urlString relativeToURL:context.url];
if (url.scheme.length == 0) {
return;
}
} else {
return;
}
}
HMViewController *controller = [[HMViewController alloc] initWithURL:url.absoluteString params:@{}];
[self setTabBarItemImage:controller.tabBarItem imageSrc:imageSrc isSelectedImage:NO];
[self setTabBarItemImage:controller.tabBarItem imageSrc:selectedImageSrc isSelectedImage:YES];
崩溃的代码位置

- Lenguaje dominante
- Objective-C
- Estrellas
- 1.4k
- Forks
- 186
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de didi/Hummer
-
支持svg图吗?Abiertoenhancement Needs: Triage 🔍
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
T i t li leAbiertobug Needs: Triage 🔍
Dificultad 5/5 Más de una semana Aptitud para principiantes 1/100
-
升级yoga3(yoga2)后,scroller 在不设置size 时,两端大小表现不一致Quizá libre de nuevo @yFeii la tomó hace 827 días y no hay ningún pull request abierto. Abiertobug Needs: Triage 🔍
-
bug Needs: Triage 🔍
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
-
bug Needs: Triage 🔍
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Todos los issues de didi/Hummer
Issues similares
-
友链申请Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 80/100
TouchFriend/BiliBiliMApp#46 ·
-
macOS: clicking a menu item that has a submenu closes the menu instead of opening the submenuAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
blackboardsh/electrobun#581 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
serhii-londar/open-source-mac-os-apps#1662 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 3 días
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
Countly/countly-sdk-ios#485 · 1 comentario ·
Los mantenedores suelen responder en 1 día