2016-02-01 55 views
1

我在下面的代碼片段中添加了加載欄。它已經很好地刪除了少量數據(比如說30到150 MB)。但問題是當我刪除大量數據時,加載欄沒有加載(大約190mb)。刪除大文件時進度條掛起

dispatch_async(dispatch_get_main_queue(), ^{ 

    [self addloading]; 
    if(_isProgress) 
     return; 
    _lastDeleteItemIndexAsked = index; 
    NSInteger catalogue_id =[[[_currentData objectAtIndex:index%[_currentData count]] valueForKey:@"catalogue_id"] integerValue]; 
    BOOL update_avilable = [[[online_date_array objectAtIndex:index%[_currentData count]] valueForKey:@"update_version"] boolValue]; 
     if(update_avilable) 
     [[self GridViewDelegate] deletecatlogue_for_update:catalogue_id]; 
    else 
     [[self GridViewDelegate] deletecatlogue:catalogue_id]; 

    [online_date_array replaceObjectAtIndex:index%[online_date_array count] withObject:[NotificationHandler check_online_date_of_catalogue:catalogue_id]]; 


    [_gmGridView reloadObjectAtIndex:index%[_currentData count] withAnimation:GMGridViewItemAnimationFade]; 

    [self stopLoadingfor_delete]; 

}); 

回答

0

是否大小或執行時間

我打算假設self是一個UI對象。如果是,該塊應該是:

Controller* __weak weakSelf = self; 
dispatch_async(queue, ^{ 
    Controller* strongSelf = weakSelf; 
    if (strongSelf) { 
     ... 
    } 
    else { 
     // self has been deallocated in the meantime. 
    } 
}); 

因此,你可能更喜歡MVVC解決方案,其中一個視圖模型的辛勤工作,而不是視圖控制器。

+0

感謝您的response.this是溢出問題。所以我已經將數據類型NSInteger更改爲double.Finally,我解決了這個問題。 :) – user1527955

+0

你的意思是,你實際上有一個*溢出*問題* StackOverflow * ... – SwiftArchitect

+0

@Lumialxk解決方案和你的評論「沒有運氣,這個問題仍然存在」呢? – SwiftArchitect