【问题标题】:How to cancel a "dispatch_get_main_queue" with a Button?如何使用按钮取消“dispatch_get_main_queue”?
【发布时间】:2020-04-02 09:29:38
【问题描述】:

我正在尝试为任务调用 API 编写代码,这里的问题是屏幕何时显示 任务仍在后台运行:

[[JPNetworkingManager sharedManager] getSnapNSendsForLetterWithID:letterID withIsArchived:isArchived completionHandler:^(NSArray *snapNSends, NSError *error) {
        dispatch_async(dispatch_get_main_queue(), ^{
         //do my code
        });
}];

那么我怎样才能取消这个任务呢?谢谢!

【问题讨论】:

    标签: objective-c multitasking


    【解决方案1】:

    你需要确保这个api返回一次完成

    [[JPNetworkingManager sharedManager] getSnapNSendsForLetterWithID
    

    或者这样做

    var once = true 
    
    [[JPNetworkingManager sharedManager] getSnapNSendsForLetterWithID:letterID withIsArchived:isArchived completionHandler:^(NSArray *snapNSends, NSError *error) {
    
        if once { 
    
           dispatch_async(dispatch_get_main_queue(), ^{
                //do my code
           }); 
    
           once = false
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多