2016-12-25 12 views
4

は、Herokuのに私のスウィフト3アプリをデプロイした後、それが次のエラーでクラッシュした:String.init(contentsOfFile :) Linuxの代わりに使用しますか?

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

私はUbuntuでString.init(contentsOfFile:)の代わりに何を使用することができますか?スウィフト標準ライブラリの最新のソースコードを見て

+0

それは答えた場合、私は知らないAppleは、この基本的な機能を提供していないことを気恥だ...私は私の時間、このアウトを把握し、これを支援するためのサードパーティ製のlibのインポートを失うする必要があります... – denis631

+1

あなたのために働いていましたが、それがない場合には、ファイルの作成、読み込み、書き込みなどの基本的な機能をサポートするfopen、fwriteなどの、C stdのラッパーであるオペランドソースの迅速なパッケージ 'FileUtils'があります:) – denis631

答えて

9

は、String.init(contentsOfFile:)は内部NSString.init(contentsOfFile:usedEncoding:)を呼び出します。 (NSStringAPI.swift

ご覧のとおり、Linux版NSString.init(contentsOfFile:usedEncoding:)はまだ実装されていません。 (NSString.swift

すでにが実装されており、String.init(contentsOfFile:encoding:)がそれを呼び出しています。あなたはファイルの文字列のエンコーディングがわからない場合は、自分で機能を実装する必要があるかもしれません

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

:だから、あなたはファイルのエンコーディングを知っていれば、同じようString.init(contentsOfFile:encoding:)を使用しています。

+0

素晴らしい! Ubuntuで 'encoding 'が動作する –

関連する問題