2013-10-03 48 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參數,這樣你就不需要全局變量。