-4

拒否の理由: アクティビティ インジケーターが無期限に回転し、ユーザーがコンテンツにアクセスできない

同じ状況で、MBProgressHUD を使用しているため、2 回目は拒否されます。

アプリストアアプリにアップロードされたアプリが違うと誰が教えてくれますか? 色々テストしましたが、ローカルではそのような問題は出ませんでした。

--------------私のコントローラーで------------------ -----------------

- (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 に答える