Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

iOS controller pop 后 app 崩溃

Abierto
#421 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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

bug Needs: Triage 🔍

描述

iOS controller pop 后 app 崩溃

Hummer version:

master branch

复现步骤

  1. 导出 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];

崩溃的代码位置
image

Lenguaje dominante
Objective-C
Estrellas
1.4k
Forks
186
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de didi/Hummer

Todos los issues de didi/Hummer

Issues similares

Más issues de Objective-C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.