gpt4 book ai didi

path - 如何将代码 objective-c 转换为 Swift 以保存图像?

转载 作者:IT王子 更新时间:2023-10-29 05:34:18 25 4
gpt4 key购买 nike

我在其他帖子看到过这段代码,用于保存图片:

  // 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如何转换这个??

谢谢!!

最佳答案

如下:

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 也被弃用的事实在 this answer 中处理。 ...

关于path - 如何将代码 objective-c 转换为 Swift 以保存图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24301424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com