Je souhaite créer une application sur iPhone dans laquelle je souhaite utiliser NSThread. J'ai créé un fil à l'aideNSThread, NSTimer et AutoreleasePools dans une application iPhone SDK
[NSThread detachNewThreadSelector:@selector(doThread:)
toTarget:self
withObject:nil];
Je veux que mon seul thread se chargera de toutes les touches et autres interactions de l'utilisateur et le second fil gérer la NSTimer. Donc, j'allouer NSTimer comme,
-(void) doThread:(NSString *)poststring {
NSLog(@"create thread:");
[lock lock];
T1 = [NSTimer scheduledTimerWithTimeInterval:(5)
target : self
selector:@selector(onTimer)
userInfo : nil
repeats : YES];
NSLog(@"after timer");
usleep(1);
[lock unlock];
}
In onTImer,
-(void)onTimer
{
NSLog(@"in timer");
}
Je peux maintenant pas en mesure d'appeler la méthode OnTimer NSTimer Dans doThread(). Mais je peux voir le "après minuterie" imprimé dans le journal. Est-ce que tout ce que je ne peux pas utiliser le NSTimer dans le fil?
C'est aussi ce que je peux obtenir pendant l'exécution.
NSAutoreleaseNoPool(): Object 0xd15880 of class __NSCFDate autoreleased with no pool in place - just leaking
Stack: (0x305a2e6f 0x30504682 0x30525acf 0x27b5 0x3050a79d 0x3050a338 0x926ae155 0x926ae012)
S'il vous plaît aidez-moi pour cela. Merci.
Vous devriez probablement nous en dire un peu plus sur la raison pour laquelle vous voulez avoir une approche multi-thread lorsque la plupart des applications qui traitent des touches ne ont pas besoin aller à de telles longueurs. – mahboudz