String.init(contentsOfFile:) 替代 Linux?

String.init(contentsOfFile:) replacement for Linux?

将我的 Swift 3 应用程序部署到 Heroku 后,它崩溃并出现以下错误:

fatal error: init(contentsOfFile:usedEncoding:) is not yet implemented: file Foundation/NSString.swift, line 1255

我可以用什么代替 Ubuntu 上的 String.init(contentsOfFile:)

看到Swift标准库的最新源码,String.init(contentsOfFile:)内部调用NSString.init(contentsOfFile:usedEncoding:)。 (NSStringAPI.swift)

Linux 版本的 NSString.init(contentsOfFile:usedEncoding:),如您所见,尚未实现。 (NSString.swift)

似乎 NSString.init(contentsOfFile:encoding:) 已经实现并且 String.init(contentsOfFile:encoding:) 调用了它。因此,如果您知道文件的编码,请使用 String.init(contentsOfFile:encoding:),例如:

let fileContent =  try? String(contentsOfFile: filePath, encoding: .utf8)

如果不知道文件的字符串编码,可能需要自己实现功能。