API 服务器调用中的字符串打印,但不在其外部

问题描述 投票:0回答: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);


  }

我有一种感觉,这与线程有关,但我不明白为什么。如果有人能解释一下,那就太好了!

ios objective-c multithreading
1个回答
1
投票

检查控制台顶部。看起来您记录了异步操作的完成处理程序,在这种情况下,调用日志语句的顺序将如下所示:

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

“第二个徽章打印”可能只是隐藏在 JSON 响应上方。

© www.soinside.com 2019 - 2024. All rights reserved.