【发布时间】:2019-04-29 18:47:38
【问题描述】:
我是 Swift 的新手。
我正在尝试编写一个简单的应用程序,它只读取文件并将其内容转换为字符串。我正在使用 FileManager 以及此处为 Swift 4 提供的示例:Read and write a String from text file
但它不起作用。我假设问题是我给String(contentsOf: URL) 方法提供了错误的URL。抛出的确切错误是它无法打开文件,因为它不存在。
下面是我的ViewController.swift代码:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var testText: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let test = directoryContents()
do {
let text = try String(contentsOf: test)
testText.text! = text
}
catch{
print(error.localizedDescription)
}
}
}
func directoryContents() -> URL {
var dirContents: URL!
dirContents = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
dirContents = dirContents.appendingPathComponent("testdata.txt")
return dirContents
}
其余的应用程序文件是通用的单一视图应用程序文件。我会包含侧边栏的图像,但是当我尝试上传它时,问题编辑器抛出了一个错误。基本上,它看起来像:
testingData/
testingData/
TestData/
testdata.txt
AppDelegate.swift
ViewController.swfit
Main.storyboard
Assets.xcassets
LaunchScreen.storyboard
Info.plist
Products/
testingData.app
Main.storyboard 添加了一个TextView,即我的ViewController 中的testText。我要读入的文件是testdata.txt,它是一个包含文本1,2,3,4,5,6 的文本文件,仅此而已。它是testingData 应用程序的成员。
我不确定我错过了什么。如果在这里的其他地方回答了这个问题,请指出我那个方向,我会关闭它。
【问题讨论】:
-
您应该通过项目设置中的构建设置将 txt 文件包含到包中。然后使用 Bundle api 获取文件的路径。例如,Bundle.url...。