部署我的斯威夫特3应用的Heroku之后,它坠毁并出现以下错误:用于Linux的String.init(contentsOfFile :)更换?
fatal error: init(contentsOfFile:usedEncoding:) is not yet implemented: file Foundation/NSString.swift, line 1255
什么我可以使用,而不是String.init(contentsOfFile:)
在Ubuntu?
部署我的斯威夫特3应用的Heroku之后,它坠毁并出现以下错误:用于Linux的String.init(contentsOfFile :)更换?
fatal error: init(contentsOfFile:usedEncoding:) is not yet implemented: file Foundation/NSString.swift, line 1255
什么我可以使用,而不是String.init(contentsOfFile:)
在Ubuntu?
看到斯威夫特标准库的最新源代码,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)
如果你不知道该文件的编码字符串,你可能需要自己实现该功能。
太棒了!在Ubuntu上提供编码功能 –
这是一个该死的耻辱,苹果不提供这种基本功能...我需要减掉我的时间搞清楚了这一点,并导入第三方的lib支持这个... – denis631
我不知道答案为你工作,但如果它没有一个操作源代码的swift包'FileUtils',它是C std中的一个包装器,如fopen,fwrite等,它支持创建,读取和写入文件等基本功能。 – denis631