Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

iOS controller pop 后 app 崩溃

Aperta
#421 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
ios, javascript, objective-c
Ambito
mobile-dev

Direzione di ricerca

Inizia da HMJSCExecutor.m intorno alla riga 1315 e riproduci la sequenza segnalata: un UITabBarController nativo che gestisce più HMViewControllers carica risorse JavaScript, quindi il controller della barra delle schede viene rimosso. Controlla il crash relativo alla distruzione registrata di HMJSContext e verifica che il componente venga distrutto normalmente senza crash.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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

Lingua principale
Objective-C
Stelle
1.4k
Fork
186
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di didi/Hummer

Tutte le issue di didi/Hummer

Issue simili

Altre issue su Objective-C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.