gpt4 book ai didi

ios - 使用不与 Swift 一起使用的 freopen 将日志内容写入文本文件

转载 作者:可可西里 更新时间:2023-11-01 02:02:44 26 4
gpt4 key购买 nike

我想将每个 print() 内容写入 Swift 3.0 中的文本文件。它在 Objective-C 中运行良好,但在 Swift 3.0 中不起作用。我正在使用如下代码,

    func redirectLogToDocuments() {

let docDirectory: NSString = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)[0] as NSString
let logpath = docDirectory.appendingPathComponent("Logfile.txt")

freopen(logpath.cString(using: String.Encoding.utf8)!, "a+", stdin)
freopen(logpath.cString(using: String.Encoding.utf8)!, "a+", stdout)
freopen(logpath.cString(using: String.Encoding.utf8)!, "a+", stderr)
}

请帮帮我。

最佳答案

 func redirectLogToDocuments() {
let allPaths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let documentsDirectory = allPaths.first!
let pathStringComponent = "/" + LoggingConstants.LogFileName + "." + LoggingConstants.LogFileType
let pathForLog = (documentsDirectory as NSString).appending(pathStringComponent)
freopen(pathForLog.cString(using: String.Encoding.ascii)!, "a+", stderr)
}

在 didFinishLaunching() 中使用上面的方法,然后使用 NSLog() 语句而不是 print() ,你会得到你想要的。

关于ios - 使用不与 Swift 一起使用的 freopen 将日志内容写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45164811/

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