Как передать аргумент через NSThread - PullRequest
0 голосов
/ 06 апреля 2011

Я никогда раньше не использовал NSThread, и мне было интересно, можно ли передать в него аргументы, и если да, то как?Например:

NSObject *phrase = @"I JUST MADE IT THROUGH TO THE THREAD METHOD!"; 

[NSThread detachNewThreadSelector:@selector (run_thread)
                         toTarget:self 
                       withObject:phrase];

затем


-(void)run_thread
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 

NSLog(@"RECORD FILE PATH ---->   %@", phrase);

[pool drain];

 }

Я думаю, вы понимаете, что я пытаюсь сделать.Любой совет?

Ответы [ 2 ]

6 голосов
/ 06 апреля 2011

Ты почти у цели:

NSObject *phrase = @"I JUST MADE IT THROUGH TO THE THREAD METHOD!"; 

[NSThread detachNewThreadSelector:@selector (run_thread:) // have to add colon
                     toTarget:self 
                   withObject:phrase];

-(void)run_thread:(NSObject* )phrase // change method signature to support taking an NSObject 
{
  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 

  NSLog(@"RECORD FILE PATH ---->   %@", phrase);

  [pool drain];

}
1 голос
/ 06 апреля 2011
[NSThread detachNewThreadSelector:@selector(run_thread:)
                         toTarget:self 
                       withObject:phrase];

-(void)run_thread:(NSString *)phrase
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 

    NSLog(@"RECORD FILE PATH ---->   %@", phrase);

    [pool drain];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...