使用 Swift我试图从URL下载JPG,然后将该图像保存到文件中,但是当我尝试将其保存到不同的目录时,它不会.它将下载到应用程序的Documents文件夹,但是当我尝试将路径设置为另一个子文件夹
          let dir = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0].stringByAppendingPathComponent("SubDirectory") as String
let filepath = dir.stringByAppendingPathComponent("test.jpg")
UIImagePNGRepresentation(UIImage(data: data)).writeToFile(filepath, atomically: true) 
 当我运行它时,它不会将图像保存到它?为什么会这样?我需要事先创建子文件夹吗?
几点想法:>子目录文件夹是否已存在?如果没有,您必须先创建它.现在建议使用NSURL而不是路径字符串.这样产量:
let filename = "test.jpg"
let subfolder = "SubDirectory"
do {
    let fileManager = NSFileManager.defaultManager()
    let documentsURL = try fileManager.URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: false)
    let folderURL = documentsURL.URLByAppendingPathComponent(subfolder)
    if !folderURL.checkPromisedItemIsReachableAndReturnError(nil) {
        try fileManager.createDirectoryAtURL(folderURL, withIntermediateDirectories: true, attributes: nil)
    }
    let fileURL = folderURL.URLByAppendingPathComponent(filename)
    try imageData.writeToURL(fileURL, options: .AtomicWrite)
} catch {
    print(error)
} 
 >我建议不要将NSData转换为UIImage,然后将其转换回NSData.如果需要,您可以直接编写原始NSData对象.
通过UIImage对此进行往返的过程可能会导致丢失质量和/或元数据,从而可能使得结果资产变大等.一般情况下,应尽可能使用原始NSData.
