2010-07-27 53 views
1

我有一个问题;在我的程序,如果我调用2次NSThread问题

[self performSelectorOnMainThread:@selector(callDectectionMove:) withObject:[NSNumber numberWithInt:(int)i] waitUntilDone:false];

我创建2线程或不是? 因为在我的程序中我不确定创建2个线程。
感谢

-(void)callDectectionMove:(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)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]) 
    [self performSelectorOnMainThread:@selector(callDectectionMove:) withObject:[NSNumber numberWithInt:(int)i] waitUntilDone:false]; 

    } 
} 

回答

4

方法performSelectorOnMainThread不会创建新的线程,它只是在主线程分派选择。创建新线程使用detachNewThreadSelector:toTarget:withObject:

+0

阅读NSThread - > http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSThread_Class/Reference/Reference.html – 2010-07-27 09:59:53