gpt4 book ai didi

objective-c - 在 Swift 中访问临时目录

转载 作者:搜寻专家 更新时间:2023-10-30 22:01:51 25 4
gpt4 key购买 nike

我试图在 Swift 中访问临时目录。在 Objective-C 中,我可以使用以下代码来实现:

- (NSString *)tempDirectory {

NSString *tempDirectoryTemplate =
[NSTemporaryDirectory() stringByAppendingPathComponent:@"XXXXX"];
const char *tempDirectoryTemplateCString = [tempDirectoryTemplate fileSystemRepresentation];
char *tempDirectoryNameCString = (char *)malloc(strlen(tempDirectoryTemplateCString) + 1);
strcpy(tempDirectoryNameCString, tempDirectoryTemplateCString);
char *result = mkdtemp(tempDirectoryNameCString);
if (!result) {
return nil;
}
NSString *tempDirectoryPath = [[NSFileManager defaultManager] stringWithFileSystemRepresentation:tempDirectoryNameCString length:strlen(result)];
free(tempDirectoryNameCString);
return tempDirectoryPath;
}

但是,我对从Objective-C到Swift的类型转换和转换有点困惑,比如const char *CMutablePointer<CChar> .有没有我应该查看的文件?

谢谢。

最佳答案

怎么样:

public extension FileManager {
func createTempDirectory() throws -> String {
let tempDirectory = (NSTemporaryDirectory() as NSString).appendingPathComponent(UUID().uuidString)
try FileManager.default.createDirectory(atPath: tempDirectory,
withIntermediateDirectories: true,
attributes: nil)
return tempDirectory
}
}

它没有回答你关于 char* 的问题,但它更干净......

NSFileManager 引用 here .

另请查看 this SO question关于唯一名称。

关于objective-c - 在 Swift 中访问临时目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24281362/

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