Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 未将文件正确下载到NSDocumentsDirectory?_Ios_Swift_Download_Nsurlconnection_Nsurl - Fatal编程技术网

Ios 未将文件正确下载到NSDocumentsDirectory?

Ios 未将文件正确下载到NSDocumentsDirectory?,ios,swift,download,nsurlconnection,nsurl,Ios,Swift,Download,Nsurlconnection,Nsurl,我想将文件下载到NSDocuments目录。我获取一个url,它是一个下载链接,该url存储在一个名为url的变量中。以下是我执行下载的代码,并将其存储到文档目录中,因此: let data = NSURLConnection.sendSynchronousRequest(urlRequest, returningResponse: &response,error: &error) if data != nil && error == nil{ var d

我想将文件下载到NSDocuments目录。我获取一个url,它是一个下载链接,该url存储在一个名为
url
的变量中。以下是我执行下载的代码,并将其存储到
文档目录中
,因此:

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那么您从url加载了文件数据???顺便说一句,url是一个字符串?@LeonardoSavioDabus我刚刚从这个链接抓取了代码:并对其进行了修改,以便将其下载到Documents目录中。Log
documentsDirectoryUrl
,然后双击finder->go to folder->粘贴url然后去那里检查。我只是有点困惑:我以前的实现可能有什么问题?@user1871869不客气。正如我所评论的,那里有很多错误。尝试比较这两种代码,您会注意到差异
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)
}