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)
如果不知道文件的字符串编码,可能需要自己实现功能。
将我的 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)
如果不知道文件的字符串编码,可能需要自己实现功能。