Action Extension を使用して写真アプリから画像をアップロードしようとしています。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)
それは正常に動作します。
問題は、画像をアップロードしてビューを一度閉じてから、最初のプロセスがまだバックグラウンドで実行されている間に 2 番目の画像をアップロードしようとすると、最初の NSURLSession が完了しないことです。2 番目のプロセスのみが完了します。つまり、2 番目のセッションは 1 番目のセッションを克服します。
NSOperationQueue を使ってみました。ただし、アクション拡張機能をいったん閉じてから 2 番目のセッションで再度開くと、新しい NSOperationQueue が作成されるだけなので、問題は解決しません。
どんな提案も役に立ちます。前もって感謝します。