代码之家  ›  专栏  ›  技术社区  ›  Oh Danny Boy

iPhone:云数据同步加载屏幕不工作

  •  0
  • Oh Danny Boy  · 技术社区  · 14 年前

    在我的应用程序视图中,我有一个子视图,上面写着“正在加载”,并在同步云数据时出现。

    // Reachability test.
    BOOL isConnected = [self checkInternet];
    
    // If we have connectivity, then sync data with cloud.
    if(isConnected){
        [self beginDataSync]; 
    }else{ 
        [self hideLoadingView];
    }
    

    - (void)beginDataSync{
        SyncData *syncData = [[SyncData alloc] init];
        [syncData syncDataStart];
    
        [self startAnimatingIndicator];
    
        do {
            [syncData dropHoodsData];
            //  [syncData dropBarsData];
            [syncData nameDataComparison];
            [syncData locDataComparison];
            [syncData setLocalNamess];
            [syncData setLocNamePairs];
            [syncData syncDataFinish];
        } while ([syncData isSyncing]);
    
        BOOL finishedSyncing = [syncData syncDataFinish];
        if (finishedSyncing) {
            [self performSelector:@selector(stopAnimatingIndicator) withObject:nil afterDelay:1.0];
        }
    
    
            [syncData release];
    }
    

    1 回复  |  直到 14 年前
        1
  •  0
  •   davydotcom    14 年前

    您需要使用线程。由于您正在主线程中执行所有同步操作,因此程序循环没有机会执行屏幕的重新绘制。

    一种解决方案是在加载视图控制器上发生viewdidAppear方法后开始同步。否则我会调查一下Nthread。