1

「2 番目のバッジ プリント」ではコンソールに何も出力されないのに、「1 番目のバッジ プリント」では何が表示されるのかわかりません。

-(void)runBadgeCall{
    NSLog(@"---RAN BADGE CALL---");
    [[API sharedInstance] commandWithParams:[NSMutableDictionary dictionaryWithObjectsAndKeys:
                                             @"getCountForBadge",@"command",nil]
                               onCompletion:^(NSDictionary *json){
                                   if([json objectForKey:@"badgeCount"]!= NULL){
                                   _badgeValue = [NSString stringWithFormat:@"%@",[json objectForKey:@"badgeCount"]];
                                     NSLog(@"1st badge print %@",_badgeValue);
                                   }
                               }];
    NSLog(@"2nd badge print %@",_badgeValue);


  }

スレッドと関係があるような気がしますが、理由がわかりません。誰かがそれを説明できれば、それは素晴らしいことです!

4

1 に答える 1

1

コンソールの上部を確認してください。非同期操作の完了ハンドラーをログに記録しているように見えます。この場合、ログ ステートメントが呼び出される順序は次のようになります。

NSLog(@"---RAN BADGE CALL---");
NSLog(@"2nd badge print %@",_badgeValue);
NSLog(@"1st badge print %@",_badgeValue);

「2nd Badge print」は、JSON 応答の上に隠れている可能性があります。

于 2013-08-07T23:21:35.263 に答える