String.init(contentsOfFile :)替代Linux?

时间:2016-12-25 00:58:11

标签: swift string file swift3 foundation

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

$request->get('sorting_ids')

在Ubuntu上我可以使用什么代替fatal error: init(contentsOfFile:usedEncoding:) is not yet implemented: file Foundation/NSString.swift, line 1255

1 个答案:

答案 0 :(得分:11)

查看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)

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