bool _WebTryThreadLock(bool), 0x8053ce0: Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread. Crashing now...

Que estoy recibiendo este error.

Hoy he descubierto este error por primera vez, la contraseña de diálogo que se muestra y la alertview está mostrando en la parte superior, lo cual no debe ocurrir hasta viewWillAppear cuando la vista se muestra. Todo esto parecía funcionar bien cuando he desarrollado este el otro día. No sé por qué el hilo de bloqueo que se ha perdido y cómo y fueron a implementar?

  • Estaría muy bien si podemos romper a la derecha cuando esto suceda.
InformationsquelleAutor Jules | 2012-03-13

6 Comentarios

  1. 19
    This may be a result of calling to UIKit from a secondary thread. Crashing now...

    …y tan lejos como puedo ver que es lo que estamos haciendo. Usted está llamando [alertProgress dismissWithClickedButtonIndex:0 animated:YES];, un UIKit método, desde un subproceso distinto de su hilo principal(s), lo cual no está permitido.

    Para un muy sencilla para llamar de nuevo al hilo principal, si usted no puede utilizar MCD, echa un vistazo a DDFoundation.

    Su código sería, en ese caso, sólo a cambio de hacer;

    [[alertProgress dd_invokeOnMainThread] dismissWithClickedButtonIndex:0 
                                           animated:YES]; 
    • Pero el viewcontroller y la alertview y el hilo no debería estar ejecutándose en ese momento. Donde debo rechazar la alerta de vista, me refiero a que no sé cuando el hilo ha terminado ?
    • Si su versión de IOS permite, la forma más sencilla es probablemente el uso de MCD en lugar de manual de hilos, que le permitirá a fácil especificar una devolución de llamada que se ejecuta en el hilo principal cuando el subproceso en segundo plano está hecho. Ver el ejemplo en esta página para ver que se haga; en.wikipedia.org/wiki/Grand_Central_Dispatch
    • Necesidad de apoyo antiguas versiones de iOS
    • Alguien tiene alguna pista más 🙁
    • Cuando el hilo está hecho, el uso de performSelectorOnMainThread a tener que despedir a la alertProgress en el hilo principal. developer.apple.com/library/ios/#documentation/Cocoa/Reference/…:
  2. 15

    Yo también enfrentan este problema, mientras que yo estaba llamando a un método por el

    [self performSelector:@selector(myMethod) withObject:nil afterDelay:.01];

    Ahora se ha resuelto mediante la realización en el hilo principal

    [self performSelectorOnMainThread:@selector(myMethod) withObject:nil waitUntilDone:NO];
    • Esto es impresionante. Fue la investigación de esta para siempre. Gracias
  3. 15

    si usted va a hacer cualquier operación de interfaz de usuario tiene que ser hecho en el hilo principal..

    simplemente pegar la codificación dentro de la sintaxis siguiente

    dispatch_sync(dispatch_get_main_queue(), ^{
    
    //Your code goes here
    
    });

    o usted puede llamar a su método con la siguiente sintaxis

    [self performSelectorOnMainThread:@selector(yourmethod:)withObject:obj waitUntilDone:YES]

    Espero que esto ayude

  4. 3

    //La forma más fácil es llamar a la función utilizando hilo principal para que.


    dispatch_async(dispatch_get_main_queue(), ^{
    [self doSomething];
    });

  5. 1

    Tuve un problema similar y se utiliza

    performSelectorOnMainThread:withObject:waitUntilDone:

    para resolverlo. Espero que ayude.

Dejar respuesta

Please enter your comment!
Please enter your name here