String.init(contentsOfFile :)替代Linux?

eml*_*lai 4 string file foundation swift swift3

在将我的Swift 3应用程序部署到Heroku之后,它崩溃了以下错误:

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

我可以使用什么而不是String.init(contentsOfFile:)Ubuntu?

OOP*_*Per 11

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

NSString.init(contentsOfFile:usedEncoding:)如你所见,Linux版本还没有实现.(NSString.swift)

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

let fileContent =  try? String(contentsOfFile: filePath, encoding: .utf8)
Run Code Online (Sandbox Code Playgroud)

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