由于有多人请求,这里是Swift中第一个答案的等效版本:
let yourURL = NSURL(string: "http://somewebsite.com/somefile.pdf")
let urlRequest = NSURLRequest(URL: yourURL!)
let theData = NSURLConnection.sendSynchronousRequest(urlRequest, returningResponse: nil, error: nil)
var docURL = (NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)).last as? NSURL
docURL = docURL?.URLByAppendingPathComponent( "myFileName.pdf")
theData?.writeToURL(docURL!, atomically: true)
另外,由于此代码使用同步网络请求,我强烈建议将其分派到后台队列:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { () -> Void in
let yourURL = NSURL(string: "http://somewebsite.com/somefile.pdf")
let urlRequest = NSURLRequest(URL: yourURL!)
let theData = NSURLConnection.sendSynchronousRequest(urlRequest, returningResponse: nil, error: nil)
var docURL = (NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)).last as? NSURL
docURL = docURL?.URLByAppendingPathComponent( "myFileName.pdf")
theData?.writeToURL(docURL!, atomically: true)
})
而对于Swift中的第二个问题的答案是:
let docURL = (NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).last) as? NSURL
var contents = (NSFileManager.defaultManager().contentsOfDirectoryAtURL(docURL!, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions.SkipsHiddenFiles, error: nil))
println(contents)