2013-10-03 3 views
1

Мне нужно показать выходы журнала в текстовом виде, а затем в моем приложении. Я пробовал использовать performSelector внутри моей последовательности, но это не сработало, как я думал. Может ли кто-нибудь показать мне, как это сделать?Печать журнала iOS

Например, когда я нажимаю кнопку, я выполняю множество операций под ним, и я хочу отображать журналы в текстовом виде, а затем, а не после завершения всей операции.

Плюс не могу я позвонить performSelector несколько раз в той же последовательности?

Ниже приводится последовательность внутри кнопки мыши:

- (IBAction)Write:(id)sender { 

//do some action here 
DisplayString = @"Seq1 pass" 
[self performSelector:@selector(updateviewText) withObject:nil afterDelay:0]; 
//do some more action 
DisplayString = @"Seq2 pass" 
[self performSelector:@selector(updateviewText) withObject:nil afterDelay:0]; 
.... 
} 

этого updateviewText часть:

-(void)updateviewText { 
     dispatch_queue_t queueNew = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); 
     dispatch_async(queueNew,^ { 

     dispatch_async(dispatch_get_main_queue(),^{ 
      [self.txtViewUseCaseLOG setText:[NSString stringWithFormat:@"%@\n%@", 
             self.txtViewUseCaseLOG.text,DisplayString ]];    
     });   
    }); 
} 

DisplayString является глобальной в здесь.

Этот код не SetText к TextView тогда и там ... Но, как я просил раньше мне нужно эти сообщения, то и там ...

+0

Показать код. – Wain

ответ

0

Вы не можете обновить пользовательский интерфейс асинхронно. Если вы выполняете задачу асинхронно и хотите обновить пользовательский интерфейс, вы должны использовать dispatch_sync.

И почему бы вам, когда вы делаете что-то асинхронно, открываете другую асинхронную задачу?

Следующая вещь: если вы используете только DisplayString в этих двух методах, вы можете добавить параметр NSString в updateViewText, так что вам не нужна глобальная переменная.