私はswift 2を使用してアプリケーションを作成しています。バックグラウンドセッションで私のサーバーに写真とビデオをアップロードする必要があります。それは言うuploadTaskWithRequestバックグラウンドセッションfromFileクラッシュ
let uploadTask = backgroundSession.uploadTaskWithRequest(request, fromFile: postingFile.url)
:
がキャッチされない例外により 'NSInvalidArgumentException'、理由にアプリを終了:ラインで
let configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier(SessionProperties.identifier)
//let configuration = NSURLSessionConfiguration.defaultSessionConfiguration();
let queue = NSOperationQueue.mainQueue()
// To limit to 1 upload at a time
queue.maxConcurrentOperationCount = 1
let backgroundSession = NSURLSession(configuration: configuration, delegate: self, delegateQueue: queue)
for postingFile in postingFileList {
let request = NSMutableURLRequest(URL: NSURL(string: NetworkUtil().serverUrl+"/upload/upload/v1.0/events/\(postingFile.event.id)/files/\(postingFile.file.id)?frag-start=0&frag-size=\(postingFile.fileSize)")!)
request.HTTPMethod = "POST"
request.setValue("Keep-Alive", forHTTPHeaderField: "Connection")
let uploadTask = backgroundSession.uploadTaskWithRequest(request, fromFile: postingFile.url)
//let uploadTask = backgroundSession.uploadTaskWithRequest(request, fromFile: postingFile.url, completionHandler: { (NSData, NSURLResponse, NSError) in
// print("completion handler")
//})
uploadTask.resume()
}
このコードのクラッシュ:そのため、私はこのコードを書く「ことができませんファイル:///var/mobile/Media/DCIM/100APPLE/IMG_0361.JPG '
バックグラウンドセッションを使用しない場合は、代わりにこの設定を使用してください:
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration();
クラッシュやアップロードが行われていません。
ファイルからのバックグラウンドセッションで何が起こったのか分かりませんか?
私のエラーは違っていましたが、それはまさに私のものでした。そこにある2つの方法のいずれかを使用して、サンドボックス内のドキュメントディレクトリに移動してみてください。これらの2つの方法が参考になります:https://stackoverflow.com/questions/6761321/what-is-the-difference-between-writetofile-and-writetourl – Alyoshak