사진 확장 기능을 통해 사진 앱에서 이미지를 업로드하려고합니다. NSURLSession을 사용하여 백그라운드에서 업로드합니다. 여기에 내가 사용하는 코드가있다.동작 확장 - 여러 NSURLSession
var configName = "com.myapp.uploadImage"
var config = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier(configName)
config.sharedContainerIdentifier = "group.myApp.sample"
var session = NSURLSession(configuration: config)
let task = session.dataTaskWithRequest(request)
task.resume()
self.extensionContext!.completeRequestReturningItems(self.extensionContext!.inputItems, completionHandler: nil)
잘 작동합니다.
질문은 이미지를 업로드하고보기를 한 번 취소 한 다음 초기 프로세스가 백그라운드에서 실행 중일 때 두 번째 이미지를 업로드하려고 시도 할 때 초기 NSURLSession이 완료되지 않은 것입니다. 두 번째 프로세스 만 완료됩니다. 즉, 두 번째 세션은 첫 번째 세션을 극복합니다.
NSOperationQueue를 사용해 보았습니다. 그러나 액션 확장은 한 번 해고되고 두 번째 세션을 위해 다시 열립니다. 단지 새로운 NSOperationQueue를 생성하기 때문에 문제가 여전히 지속됩니다.
어떤 제안이 도움이 될 것입니다. 미리 감사드립니다.
다른 식별자를 사용해 보았습니다. 여전히 같은 문제입니다. –
또한 대리자 메서드는 도움이되지 않습니다. Apple 지침에 따라 우리는 작업 확장을 기각하고 백그라운드에서 실행해야한다고 알려줍니다. 따라서 행동 연장이 기각 될 때, 대의원도 죽게됩니다. –
응용 프로그램 내에서 오래 동안 nsurlsessions를 수행했습니다. 그리고 매번 잘 작동했습니다. 그러나 행동 연장에는 지침이 있으며 합리적인 것으로 보입니다. –