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];
Run Code Online (Sandbox Code Playgroud)
我正在尝试转换为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)
}
}
}
Run Code Online (Sandbox Code Playgroud)
"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 {
// ...
}
Run Code Online (Sandbox Code Playgroud)
这个答案.stringByAppendingPathComponent
也讨论了这个也被弃用的事实......