没有正确地将文件下载到 NSDocumentsDirectory?
Not downloading files to NSDocumentsDirectory correctly?
我想将文件下载到我的 NSDocumentsDirectory。我抓取一个 url ,它是一个下载 link 并且 url 存储在一个名为 url
的变量中这是我执行下载并将其存储到 Documents Directory
所以:
let data = NSURLConnection.sendSynchronousRequest(urlRequest, returningResponse: &response,error: &error)
if data != nil && error == nil{
var documentsDirectoryUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first as! NSURL
documentsDirectoryUrl = documentsDirectoryUrl.URLByAppendingPathComponent(url.lastPathComponent)
//Hold this file as an NSData and write it to the new location
let fileData = NSData(contentsOfURL: NSURL(string:url)!)
fileData!.writeToURL(documentsDirectoryUrl, atomically: false) // true
println("\(data!.length) bytes of data was written to Documents Directory.")
}
else if data!.length == 0 && error == nil{
println("No data was returned")
}
else if error != nil{
println("Error happened = \(error)");
}
由于我正在下载的文件是音乐文件,当我尝试播放这些音乐文件中的音频时,当我尝试访问文件路径时出现错误,因为该文件的路径设置为 nil。我认为这是下载文件的问题,因为我之前的代码可以正常工作,但后来我改变了下载音乐文件的方式,代码似乎中断了。任何帮助,将不胜感激。谢谢!
import UIKit
let documentsDirectoryUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first as! NSURL
var error:NSError?
var response:NSURLResponse?
let data = NSURLConnection.sendSynchronousRequest(NSURLRequest(URL: NSURL(string: "http://i.stack.imgur.com/Xs4RX.jpg")!), returningResponse: &response, error: &error)
if let data = data where error == nil {
let destinationUrl = documentsDirectoryUrl.URLByAppendingPathComponent(response!.suggestedFilename!)
data.writeToURL(destinationUrl, atomically: true) // true
println("\(data.length) bytes of data was written to Documents Directory.")
}
if let error = error {
println(error.description)
}
我想将文件下载到我的 NSDocumentsDirectory。我抓取一个 url ,它是一个下载 link 并且 url 存储在一个名为 url
的变量中这是我执行下载并将其存储到 Documents Directory
所以:
let data = NSURLConnection.sendSynchronousRequest(urlRequest, returningResponse: &response,error: &error)
if data != nil && error == nil{
var documentsDirectoryUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first as! NSURL
documentsDirectoryUrl = documentsDirectoryUrl.URLByAppendingPathComponent(url.lastPathComponent)
//Hold this file as an NSData and write it to the new location
let fileData = NSData(contentsOfURL: NSURL(string:url)!)
fileData!.writeToURL(documentsDirectoryUrl, atomically: false) // true
println("\(data!.length) bytes of data was written to Documents Directory.")
}
else if data!.length == 0 && error == nil{
println("No data was returned")
}
else if error != nil{
println("Error happened = \(error)");
}
由于我正在下载的文件是音乐文件,当我尝试播放这些音乐文件中的音频时,当我尝试访问文件路径时出现错误,因为该文件的路径设置为 nil。我认为这是下载文件的问题,因为我之前的代码可以正常工作,但后来我改变了下载音乐文件的方式,代码似乎中断了。任何帮助,将不胜感激。谢谢!
import UIKit
let documentsDirectoryUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first as! NSURL
var error:NSError?
var response:NSURLResponse?
let data = NSURLConnection.sendSynchronousRequest(NSURLRequest(URL: NSURL(string: "http://i.stack.imgur.com/Xs4RX.jpg")!), returningResponse: &response, error: &error)
if let data = data where error == nil {
let destinationUrl = documentsDirectoryUrl.URLByAppendingPathComponent(response!.suggestedFilename!)
data.writeToURL(destinationUrl, atomically: true) // true
println("\(data.length) bytes of data was written to Documents Directory.")
}
if let error = error {
println(error.description)
}