xcode Swift Iphoneプロジェクトに.txtファイルを配置します。最初に、デスクトップからプロジェクトからSupporting Filesフォルダーにドラッグアンドドロップします。 Android "assets"なので、ファイルを好きな場所に配置できますか?
この例のファイルはREADME.txtという名前で、たくさんの行と段落があります。
とても簡単なので、README.txtファイルの内容をビューに印刷したいと思います。
ファイルがプロジェクト/SupportFiles/README.txtにある場合、どのように読み取り機能を実行し、どのパスを挿入する必要がありますか?
どうもありがとう!
let path = NSBundle.mainBundle().pathForResource("README", ofType: "txt")
textView.text = String(contentsOfFile: path,
encoding: NSUTF8StringEncoding,
error: nil)
ファイルをプロジェクトブラウザの任意の場所にドロップし、正しいターゲットに追加されていることを確認してください。
答えを拡張するために、フォルダーに配置して、 + pathForResource:ofType:inDirectory: を使用することもできます。
NSFileManagerを使用して、プロジェクトのどこかにファイルをドロップすることをお勧めします。
if let path = NSBundle.mainBundle().pathForResource(name, ofType: "txt"){
let fm = NSFileManager()
let exists = fm.fileExistsAtPath(path)
if(exists){
let c = fm.contentsAtPath(path)
let cString = NSString(data: c!, encoding: NSUTF8StringEncoding)
ret = cString as! String
}
}
Swift 4(オリジナルの@ Pierre-Yves Guillemetに感謝)
ファイルがプロジェクト内にある(および.txtがある)限り、これは機能します(この例では、「MyFile.txt」はプロジェクト内にあるファイルであると想定しています)。
static func LoadFileAsString() -> ()
{
if let path = Bundle.main.path(forResource: "MyFile", ofType: "txt")
{
let fm = FileManager()
let exists = fm.fileExists(atPath: path)
if(exists){
let content = fm.contents(atPath: path)
let contentAsString = String(data: content!, encoding: String.Encoding.utf8)
}
}
}
In Swift 3
guard let path = Bundle.main.path(forResource: "README", ofType: "txt") else {
return
}
textView.text = try? String(contentsOfFile: path, encoding: String.Encoding.utf8)
path's
タイプを定義し、!
行の最後に配置すると、警告は表示されません。
let path:String = NSBundle.mainBundle().pathForResource("README", ofType: "txt")!
textView.text = String(contentsOfFile: path,
encoding: NSUTF8StringEncoding,
error: nil)
あります Assets.xcassets
画像およびファイル用。そして、資産からそれを読み取る方法は次のとおりです。
if let data = NSDataAsset(name: "AssetName")?.data {
textView.text = String(data: data, encoding: .utf8)
}