2013-01-02 51 views
0

您好我需要更新我的進度條進度,因爲它需要5分鐘在sqlite中進行數據庫插入。更新進度條,當數據庫插入在iPhone中進行

但是,當數據庫插入那張UI獲得掛,我不能做任何更多的operation.i使用 此方法更新進度條

-(void)setProgress:(float)progress 
{ 
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 
              (unsigned long)NULL), ^(void) { 
     [progressview setProgress:progress animated:YES]; 
    }); 
} 

所以,請建議我一些方法來更新進度條時數據庫插入正在進行

+0

問題是什麼? –

回答

0

UI掛起,因爲可能您正在主線程中進行數據庫插入。

因此改變如數據庫插入方法調用:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{ 
     //call the database insertion method here 
    }); 

如果要更新由該方法的進度條,然後調用它像:

dispatch_sync(dispatch_get_main_queue(), ^{ 
    [progressview setProgress:progress animated:YES]; 
}); 

從不更新其他線程的UI元素,只從主線程更新它。