2009-11-06 7 views
0

j'obtenir cette erreurNSThread erreur en Objective-C

bool _WebTryThreadLock (bool), 0x1b53d0: a essayé d'obtenir le verrouillage de la bande à partir d'un fil autre que le fil conducteur ou le fil de la nappe. Cela peut être le résultat d'un appel à UIKit à partir d'un thread secondaire. Crashing maintenant ...

de quoi est-ce dû?

Merci

Répondre

2

les informations limitées dont vous avez donné, je suppose que vous créez un UIView (ou l'un des it'subclass) à partir d'un fil.

Essayez d'utiliser les éléments suivants à la place:

[self performSelectorOnMainThread:<#(SEL)aSelector#> 
         withObject:<#(id)arg#> 
        waitUntilDone:<#(BOOL)wait#>]; 

== == modifier

Si c'est votre appDelegate qui obtient le rappel du fil, essayez d'ajouter une nouvelle méthode en plus de votre rappel:

- (void) setMyImage:(UIImage*)theImage { 
    ... 
    myUIImageView.image = theImage; 
    ... 
} 

et appeler cela de le fil comme mentionné ci-dessus:

- (void) callBackWithImage:(UIImage*)imageFromUrl { 
    [self performSelectorOnMainThread:@selector(setMyImage:) 
          withObject:imageFromUrl 
         waitUntilDone:NO]; 
} 
+0

Dans ma méthode viewDidLoad, je crée un UIImageView. Ensuite, j'appelle un thread, qui obtient l'image à partir d'une URL, et à l'intérieur de la méthode du fil, je définis l'image pour ce ImageView. – Biranchi