-4

拒绝原因:活动指示器无限旋转,用户无法访问内容

同样的情况,第二次因为用了MBProgressHUD而被拒绝。

谁能告诉我上传到appstore的应用会有什么不同?我做了各种测试,在本地没有出现这样的问题。

-----------------------------在我的控制器中------ -----------------

- (void)downloadList
{

    if (isLoading) {
        return;
    }

    isLoading = YES;

    //do something......

    //show the progressbar based on MBProgressHUD
    [[MyDelegate getAppDelegate] showProgressBarForTarget:self whileExecuting:@selector(showProgressBarForLoading)];
     }
}

- (void)showProgressBarForLoading
{   
    while (isLoading) {
        //i++;
        continue;
    }
}

- (void)downloadListDidReceive:(XGooConnection*)sender obj:(NSObject*)obj
{
    //do something......

    isLoading = NO;

}

-----------------------------------------在我的 AppDelegate 中------ -------------

- (void)showProgressBarForTarget:(id)target whileExecuting:(SEL)theSelector
{
    UIViewController *controller = [splitViewController.viewControllers objectAtIndex:0];

    HUD = [[MBProgressHUD alloc] initWithView:controller.view];
    [controller.view addSubview:HUD];

    HUD.delegate = self;

    // Show the HUD while the provided method executes in a new thread
    [HUD showWhileExecuting:theSelector onTarget:target withObject:nil animated:YES];
}

-----------------------------------------拒绝详细的原因------ --------------------

您的应用程序的最新版本已被拒绝........

拒绝理由:

重现的步骤是:

  1. 启动应用程序
  2. 选择左上角的菜单按钮
  3. 选择一个菜单项
  4. 活动指示器无限旋转,用户无法访问内容
4

1 回答 1

3

首先,拒绝的原因可能是 MBProgressHUD 使用不当,而不是 MBprogressHUD 本身。

如果这只发生在应用商店测试期间,请尝试在发布配置中运行应用。那里也可能存在您没有预料到的网络条件。也许这只发生在出现网络错误(飞行模式?)时。发生网络错误时是否设置 isLoading = NO ?

FWIW,有一种更好的方法来显示/隐藏异步请求的 HUD。像这样在 while 循环中汇集一个标志是非常低效的。查看 MBProgressHUD 演示应用程序中的 NSURLConnection 示例。

于 2012-09-25T06:50:43.363 回答