J'ai un problème avec mon code Je veux créer 2 instances différentes avec NSThread mais je pense que dans mon problème cela ne se produit pas. Pouvez-vous prendre ma une solution à mon problème. Je poste mon code, si vous le pouvez vous pouvez montrer un exemple de solution? MerciProblème avec NSThread
@implementation myClass
-(void)detectMove:(NSNumber*)arrayIndex{
NSMutableDictionary *myDictionary = [[NSMutableDictionary alloc] init];
[myDictionary setObject:arrayIndex forKey:@"arrayIndex"];
identificationMove *identifier = [[identificationMove alloc]init];
[identifier setArrayIndex:(NSNumber*)arrayIndex];
[identifier detectionMove];
[identifier release];
}
-(void)callDectectionMove:(NSNumber*)arrayIndex{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[self performSelectorOnMainThread:@selector(detectMove:) withObject:(NSNumber*)arrayIndex waitUntilDone:NO];
[pool release];
}
-(void)detectPositionMovement{
for(int i = 0; i< [self.arrayMovement count]; i++){
if((actualAccelerometerX+sensibilityMovement) > [[[[self.arrayMovement objectAtIndex:i] arrayPositionMove]objectAtIndex:0] valueX] && (actualAccelerometerX-sensibilityMovement) < [[[[self.arrayMovement objectAtIndex:i] arrayPositionMove]objectAtIndex:0] valueX] &&
(actualAccelerometerY+sensibilityMovement) > [[[[self.arrayMovement objectAtIndex:i] arrayPositionMove]objectAtIndex:0] valueY] && (actualAccelerometerY-sensibilityMovement) < [[[[self.arrayMovement objectAtIndex:i] arrayPositionMove]objectAtIndex:0] valueY] &&
(actualAccelerometerZ+sensibilityMovement) > [[[[self.arrayMovement objectAtIndex:i] arrayPositionMove]objectAtIndex:0] valueZ] && (actualAccelerometerZ-sensibilityMovement) < [[[[self.arrayMovement objectAtIndex:i] arrayPositionMove]objectAtIndex:0] valueZ])
//I'm not sure that these istruction can start a 2 different and indipendent thread
[NSThread detachNewThreadSelector:@selector(callDectectionMove:) toTarget:self withObject:[NSNumber numberWithInt:(int)i]];
}
}
@end
Vous n'avez pas mentionné le problème. Avez-vous des avertissements/accidents/les choses ne sont pas exécutées? Quel est le problème? En outre, je ne comprends pas pourquoi exécutez le 'callDectectionMove' dans un fil séparé quand tout ce que vous avez dans cette méthode est l'exécution d'une autre méthode dans le thread principal ... –
je n'ai pas de crash et similaire mais quand le si est vrai pour 2 fois, le programme ne peut pas déjeuner 2 threads différents. Je fais cette structure car je veux reconnaître un mouvement d'accéléromètre et je dois avoir 2 fils différents pour 2 mouvements différents 3 pour 3 .... ok? – zp26