[英]UITextView not printing multiple lines
我只是從數據庫中讀取,我想輸出幾行。
我有以下代碼:
for row in try inventoryDB.prepare("SELECT name, amount FROM inventory") {
textView1.text = ("name: \(row[0]), amount: \(row[1])")
//textView1.text=("test \n")
// id: Optional(2), email: Optional("betty@icloud.com")
// id: Optional(3), email: Optional("cathy@icloud.com")
}
並且只打印第一行。
更改為
print("name: \(row[0]), amount: \(row[1])")
在控制台中逐行顯示所有數據,所以我知道它在那里。
我嘗試將換行符\\n
附加到UITextViewcall
,但它仍然僅打印最上面的行。
我是在格式化錯誤嗎?
您將替換數據庫每一行的文本視圖的內容,因此一旦完成,最終將獲得文本視圖中的最后一行值。 您可以首先將所有內容放入字符串中,最后在文本視圖中顯示它,如下所示:
var txt = ""
for row in try inventoryDB.prepare("SELECT name, amount FROM inventory") {
txt += "name: \(row[0]), amount: \(row[1])\n"
//textView1.text=("test \n")
// id: Optional(2), email: Optional("betty@icloud.com")
// id: Optional(3), email: Optional("cathy@icloud.com")
}
textView1.text = txt
您為每行替換textView1
的值。 我會將您的數據映射到字符串數組。 然后,您可以使用換行符將每個元素連接在一起。
let text = try inventoryDB.prepare("SELECT name, amount FROM inventory").map({ row -> String in
return "name: \(row[0]), amount: \(row[1])"
}).joined(separator: "\n")
textView1.text = text
問題是您要在循環內更改TextView的文本,而不是追加從循環中獲取的字符串。
嘗試這個:
var alltext = ""
for row in try inventoryDB.prepare("SELECT name, amount FROM inventory"){
alltext = alltext + "name: \(row[0]), amount: \(row[1]) \n"
}
textView1.text = alltext
確保textView的格式也可以顯示多於1行。
在Swift 3.0中,這對我有用:
print("name: \(row[0]), amount: \(row[1])", terminator: "\n")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.