gpt4 book ai didi

ios - Swift:要求用户在单击每个停止按钮后输入文本文件名

转载 作者:行者123 更新时间:2023-12-01 21:44:58 25 4
gpt4 key购买 nike

我创建了一个可以收集数据的停止按钮,单击停止按钮后将其保存到定义的路径。但是,如果我要在单击停止按钮后继续收集,则数据将被添加到原始文本文件中。 (这很有意义,因为我只知道如何定义一条路径)

我的问题是:是否可以询问用户并输入一个新文件名,并在每次停止后另存为新的文本文件,以便不将数据添加到原始文件中?

下面是我定义的路径并堆积数据的内容:

    @IBAction func stopbuttonTapped(_ btn: UIButton) {
do {
let username:String = user_name.text!
fpsTimer.invalidate() //turn off the timer
let capdata = captureData.map{$0.verticesFormatted}.joined(separator:"") //convert capture data to string
let dir: URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last! as URL
let url = dir.appendingPathComponent("testing.txt") //name the file
try capdata.appendLineToURL(fileURL: url as URL)
let result = try String(contentsOf: url as URL, encoding: String.Encoding.utf8)
}
catch {
print("Could not write to file")
}
}

还有我用于字符串和数据的扩展名:
 extension String {
func appendLineToURL(fileURL: URL) throws {
try (self).appendToURL(fileURL: fileURL)
}

func appendToURL(fileURL: URL) throws {
let data = self.data(using: String.Encoding.utf8)!
try data.append(fileURL: fileURL)
}
func trim() -> String
{
return self.trimmingCharacters(in: CharacterSet.whitespaces)
}
}
extension Data {
func append(fileURL: URL) throws {
if let fileHandle = FileHandle(forWritingAtPath: fileURL.path) {
defer {
fileHandle.closeFile()
}
fileHandle.seekToEndOfFile()
fileHandle.write(self)
}
else {
try write(to: fileURL, options: .atomic)
}
}
}

我是否需要设置默认文件名(也许是texting.txt),然后弹出用于保存文本文件的用户输入? (在那儿,我不太确定如何整合到现有资源中)。非常感谢您的宝贵时间和建议。

最佳答案

您可以生成唯一的名称。

例如:

let url = dir.appendingPathComponent("testing-\(Date.timeIntervalSinceReferenceDate).txt")

要么
let url = dir.appendingPathComponent("testing-\(UUID().uuidString).txt")

关于ios - Swift:要求用户在单击每个停止按钮后输入文本文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62309234/

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