当我调用 API 并锁定手机屏幕或最小化应用程序时,Alamofire 给我一个错误。
"The operation couldn't be completed. Software caused connection
abort"
- 我的 API 需要 60 秒才能完成一项操作。
- 这只发生在 iPhone 中,而不是模拟器中。
请给我这个问题的解决方案。
Best Answer-推荐答案 strong>
我认为当应用程序进入后台时,iOS 12 会在最后一个请求返回结果之前关闭连接。您可以使用以下代码来解决您的问题:
if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) {
[self sendBackgroundDataToServer];
}
- (void) sendBackgroundDataToServer {
UIBackgroundTaskIdentifier bgTask = UIBackgroundTaskInvalid;
bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
[[UIApplication sharedApplication] endBackgroundTask:bgTask];
}];
NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithCapacity:2];
[dictionary setObject:[NSNumber numberWithDouble:lc.coordinate.latitude] forKey"floLatitude"];
[dictionary setObject:[NSNumber numberWithDouble:lc.coordinate.longitude] forKey"floLongitude"];
// send to server with a synchronous request
// AFTER ALL THE UPDATES, close the task
if (bgTask != UIBackgroundTaskInvalid) {
[[UIApplication sharedApplication] endBackgroundTask:bgTask];
}
}
关于ios - Alamofire 错误 : Operation couldn't be completed. 软件导致连接中止,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/54902181/
|