use*_*888 10 path avfoundation nsdocumentdirectory swift
我在其他帖子中看到过这段代码,用于保存图片:
  // Create path.
 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,      NSUserDomainMask, YES);
 NSString *filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Image.png"];
// Save image.
[UIImagePNGRepresentation(image) writeToFile:filePath atomically:YES];
我正在尝试转换为swift以保存带有avfoundatioin的图片但我不知道类型NSDocumentDirectory和NSUserDomainMask这里如何转换这个?
谢谢!!
Gri*_*mxn 19
如下:
let nsDocumentDirectory = NSSearchPathDirectory.DocumentDirectory
let nsUserDomainMask = NSSearchPathDomainMask.UserDomainMask
if let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true) {
    if paths.count > 0 {
        if let dirPath = paths[0] as? String {
            let readPath = dirPath.stringByAppendingPathComponent("Image.png")
            let image = UIImage(named: readPath)
            let writePath = dirPath.stringByAppendingPathComponent("Image2.png") 
            UIImagePNGRepresentation(image).writeToFile(writePath, atomically: true)
        }
    }
}
"paths"是一个AnyObject [],因此您必须检查其元素是否可以转换为String.
当然,您实际上不会使用"NSDocumentDirectory"作为名称,我只是为了清晰起见.
更新Xcode 7.2
NSSearchPathForDirectoriesInDomains现在返回[String]而不是[AnyObject]?使用
let nsDocumentDirectory = NSSearchPathDirectory.DocumentDirectory
let nsUserDomainMask = NSSearchPathDomainMask.UserDomainMask
let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true)
if let dirPath = paths.first {
    // ...
}
这个答案.stringByAppendingPathComponent也讨论了这个也被弃用的事实......
| 归档时间: | 
 | 
| 查看次数: | 8936 次 | 
| 最近记录: |