2012-06-22 3 views
1

У меня есть подобный кодКак выполнить некоторый код после того, как определенный поток выполнил свою работу?

- (IBAction)onClick:(id)sender { 

    NSThread *thread = [[NSThread alloc]initWithTarget:parser selector:@selector(adapter:) object:ph]; 

    [thread start]; 
} 

Как я могу сделать что-то (показать журнал или) после чего-л нить выполняется селектором я прошел?

ответ

2

К сожалению, нет простого ответа на этот вопрос без использования GCD (который является функцией iOS 4.x, которую вы не сможете поддерживать), поэтому используйте NSNotificationCenter и защелкните в уведомлении, когда метод сделанный.

- (IBAction)onClick:(id)sender { 

    NSThread *thread = [[NSThread alloc]initWithTarget:parser selector:@selector(adapter:) object:ph]; 

    [thread start]; 
} 

-(void)adapter:(NSObject*)arg { 
    //... process and such 
    [[NSNotificationCenter defaultCenter]postNotification:[NSNotification notificationWithName:@"Thread_Done" object:nil]]; 

} 
+0

Я могу видеть, как вы передаете уведомление, но я не могу понять, как выполнить некоторый - (void) метод onPostExecute после выполнения потока - (void). – haawa

+0

Это легко, замените уведомление следующим образом: '[self performSelectorOnMainThread: @selector (onPostExecute)];' – CodaFi

Смежные вопросы