我正在Swift中做一个项目,我正在从文件中读取数据并尝试在文本视图中显示它。我正在逐行阅读。例如,如果文件中有10行,则文本视图仅显示最后一行。而且我想全部看到它们。
我该怎么做?
我这样做:
if let aStreamReader = StreamReader(path: "historic.txt") {
defer {
aStreamReader.close()
}
while let line = aStreamReader.nextLine() {
MyTextView.text = "\(line)"
}
代码在控制台中工作,因为如果我打印出每个显示确定。 但在文本视图中,只有最后一行可见。
答案 0 :(得分:4)
尝试怎么样:
MyTextView.text + ="(line)"
' +'将追加而不是替换。
您可能需要在行字符串后添加\ n以创建新行:
MyTextView.text + ="(line)\ n"
<强>更新强>
我忘了你不能附加到textview上,所以在循环之前创建一个空字符串,然后将该行附加到while循环中的字符串上。然后最后在循环之后将textview文本设置为totalString变量:
var totalString = ""
while let line = aStreamReader.nextLine() {
totalString = totalString + line + "\n"
}
MyTextView.text = totalString
希望有所帮助
答案 1 :(得分:0)
确保标签lines
属性的值为0
并尝试此
if let aStreamReader = StreamReader(path: "historic.txt") {
defer {
aStreamReader.close()
}
var str = ""
while let line = aStreamReader.nextLine() {
str = str + line + "\n"
}
MyTextView.text = str