【问题标题】: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
}
}