[英]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.