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

iPhone:云数据同步加载屏幕不工作,iphone,Iphone,在我的应用程序视图中,我有一个子视图,上面写着“正在加载”,并在同步云数据时显示 在viewdidload中,我有 // Reachability test. BOOL isConnected = [self checkInternet]; // If we have connectivity, then sync data with cloud. if(isConnected){ [self beginDataSync]; }else{ [self hideLoading

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

在viewdidload中,我有

// 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];
}

同步工作正常,所有内容都正确注销,数据正确无误。错误的行为是视图在同步时不加载“同步”(在数据完成同步之前,应用程序只显示splash)。这使应用程序看起来像是在“挂起”。我希望它加载视图,同时显示加载子视图并进行数据同步,然后当同步完成时,它隐藏子视图。你知道我做错了什么吗?

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


一种解决方案是在加载视图控制器上出现ViewDidAspect方法后开始同步。否则,我会使用davydotcom研究NSThread。

这个答案我能够解决这个问题。非常感谢你。以前从未使用过线程。没有想到要用它们。