2013-10-03 47 views
1

我需要在文本视图中显示日志输出,然后在我的应用程序中显示。我尝试在我的序列中使用performSelector,但它没有按照我的想法工作。有人可以告诉我该怎么做吗?打印登录iOS

例如,当我点击一个按钮时,我在下面做了很多操作,并且我想在textview中显示日志,然后在整个操作完成后显示。

加我不能拨打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是一个全球性的VA这里可以拉近。

这个代码不给的setText TextView的,然后有......但正如我刚才问我需要这些信息,然后有...

+0

显示一些代码。 – Wain

回答

0

你不能异步更新UI。如果您正在异步执行任务并想更新UI,则必须使用dispatch_sync

你为什么要在做某些事情时异步打开另一个异步任务?

接下来的事情是,如果你只在这两种方法中使用DisplayString,那么最好在updateViewText中增加一个NSString参数,这样你就不需要全局变量。