2015-12-27 90 views
0

我正在Swift中執行一個項目,並且正在從文件讀取數據並嘗試在文本視圖中顯示它。我正在逐行閱讀。例如,如果文件中有10行,則文本視圖僅顯示最後一行。我想看到他們。在TextView中顯示多行

我該怎麼做?

我這樣做是這樣的:

if let aStreamReader = StreamReader(path: "historic.txt") { 
    defer { 
     aStreamReader.close() 
    } 

while let line = aStreamReader.nextLine() { 
    MyTextView.text = "\(line)" 
} 

的代碼是工作在控制檯上,因爲如果我做一個打印每露面確定。 但在文本視圖中只有最後一行是可見的。

+0

你」我們需要將文本附加到一起或將其收集到一個數組中,然後在讀取文件後顯示它。目前它看起來像你剛剛設置每行遇到的文本,因此只顯示在運行時的最後一行 –

回答

4

如何努力:

MyTextView.text + = 「(線)」

的 '+' 將追加而不是取代。

您可能必須添加\ n中的線串後,創建一個新的行:

MyTextView.text + = 「(行)\ n」 個

更新:

我忘了你不能追加到textview上,所以在循環之前創建一個空字符串,然後將該行添加到while循環中的字符串中。後來終於設置TextView的文本到totalString變量在循環後:

var totalString = "" 
while let line = aStreamReader.nextLine() { 
    totalString = totalString + line + "\n" 
} 
MyTextView.text = totalString 

希望幫助

+0

我得到這個消息說,二元運算符+ =不能被加到一個字符串... – hnegrao

+0

而這一個是不是內存效率 –

+0

嘗試更新回答 –

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