SVProgressHud没有在正确的时间显示

时间:2014-10-14 02:02:00

标签: ios xcode afnetworking svprogresshud

我有以下代码。它的作用是通过调用另一个类/方法 - POSRestletManager来执行一系列同步(使用AFNetworking)。

在每个方法之前,从getSettingsWithEnv开始,我正在显示一条消息(使用SVProgressHud)来向用户显示事物的位置。这似乎立即显示所有方法调用(因为它们是异步),但仅在方法调用完成后才显示。即。在完成块中。如何在通话前显示信息?它甚至可能吗?

我问的原因是最后一次调用(getItemsWithLocation)是同步执行的,因此在同步所有项目之前不会显示消息“同步项目...”...这显然是不是我想要的。

任何人都可以帮助我更好地构建这个吗?

这是我的代码。

- (IBAction)updateSettings:(id)sender {
 isUpdating = YES;

[POSRestletsManager getInstance].delegate = self;
[POSRestletsManager setHeaderWithUsername:[POSUserDefaults getRegisteringEmail] Password:[POSUserDefaults getRegisteringPassword] accountNumber:[POSUserDefaults getRegisteringAccount] andRoleNumber:[POSUserDefaults getRegisteringRole]];

[POSRestletsManager getDataCenterURL:[POSUserDefaults getEnvironmentValue] completion:^{

    [SVProgressHUD showWithStatus:@"Sync Settings..." maskType:SVProgressHUDMaskTypeGradient];
    [self.navigationController popToRootViewControllerAnimated:YES];

    [POSRestletsManager getSettingsWithEnv:[POSUserDefaults getEnvironmentValue] locationId:((NSString *)[POSUserDefaults getRegisteringTerminal]).integerValue andUpdateType:@"Full" completion:^{

        [SVProgressHUD dismiss];
        [SVProgressHUD showWithStatus:@"Sync Customers..." maskType:SVProgressHUDMaskTypeGradient];

        [POSRestletsManager getCustomersListWithUpdateType:[POSUserDefaults getEnvironmentValue] andUpdateType:_customerSync completion:^{

            [SVProgressHUD dismiss];
            [SVProgressHUD showWithStatus:@"Sync Items..." maskType:SVProgressHUDMaskTypeGradient];


            [POSRestletsManager getItemsWithLocation:[[POSCoreDataManager getInstance] getLocationId] andUpdateType:_itemSync andEnvironment:[POSUserDefaults getEnvironmentValue]];

            [[NSNotificationCenter defaultCenter] postNotificationName:@"POSSetCustomerSettings" object:nil] ;

        }];
    }];

}];

}

0 个答案:

没有答案