Передача текста из текстового файла в UITextView в «Swift 3»

Я начинаю разработку iOS, и я пытаюсь создать простую программу, которая передает текст из текстового файла в UITextView в «Swift 3». Я искал много учебников на YouTube, стеке и других веб-сайтах, но все они, кажется, либо дают мне много ошибок, либо слишком сложно для меня тоже понять (поскольку я слишком неопытен).

Снимок экрана раскадровки

Есть три кнопки, три текстовых файла и один текстовый вид. Когда пользователь нажимает на первую кнопку, файл1 будет загружен в текстовое поле.

Некоторые из моих попыток, это дает мне ошибку в txt_view.text = txt1.txt

import UIKit class ViewController: UIViewController { @IBOutlet weak var txt_view: UITextView! @IBAction func btn_txt1(_ sender: Any) { txt_view.text = txt1.txt } @IBAction func btn_txt2(_ sender: Any) { txt_view.text = txt2.txt } @IBAction func btn_txt3(_ sender: Any) { txt_view.text = txt3.txt } override func viewDidLoad(){ super.viewDidLoad() } override func didReceiveMemoryWarning(){ super.didReceiveMemoryWarning() } } 

Вероятно, это самый простой способ сделать это.

 import UIKit class ViewController: UIViewController { @IBOutlet weak var textView: UITextView! @IBAction func readFile1(_ sender: Any) { self.textView.text = load(file: "file1") } @IBAction func readFile2(_ sender: Any) { self.textView.text = load(file: "file2") } @IBAction func readFile3(_ sender: Any) { self.textView.text = load(file: "file3") } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.textView.text = load(file: "file1") } func load(file name:String) -> String { if let path = Bundle.main.path(forResource: name, ofType: "txt") { if let contents = try? String(contentsOfFile: path) { return contents } else { print("Error! - This file doesn't contain any text.") } } else { print("Error! - This file doesn't exist.") } return "" } } 

Используйте эту вспомогательную функцию:

 func updateTextView(with fileName: String) { if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first { let path = dir.appendingPathComponent(fileName) do { txt_view.text = try String(contentsOf: path, encoding: String.Encoding.utf8) } catch {/* error handling here */} } } 

Вы можете применить его к таким действиям:

 @IBAction func btn_txt1(_ sender: Any) { updateTextView(with: txt1.txt) } 

Таким образом вы не можете читать данные из текстового файла.

Чтобы сделать это, вы можете сделать что-то вроде этого:

 let file = "txt1.txt" //this is the file. we will write to and read from it if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first { let path = dir.appendingPathComponent(file) catch {/* error handling here */} //reading do { let text_view.txt = try String(contentsOf: path, encoding: String.Encoding.utf8) } catch {/* error handling here */} } 
Давайте будем гением компьютера.