如何通过按钮取消“ dispatch_get_main_queue”?

问题描述 投票:0回答:1

我正在尝试为任务调用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个回答
0
投票

您需要确保一次调用此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
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.