VStack {
.onAppear {
for cont in contactsVM.contacts {
info = "\(cont.firstName) \(cont.lastName);\(cont.phone);//"
}
}
}
如果將資訊中的文本保存并列印出來,則只會出現一個文本
我想獲取控制臺上顯示的所有文本
我將把它用作文本編輯器
有錯誤
這是我的視圖模型
getContacts() {
Contact.fetchAll { [weak self] result in
guard let self = self else { return }
switch result {
case .success(let fetchedContacts):
DispatchQueue.main.async {
self.contacts = fetchedContacts.sorted(by: {$0.lastName < $1.lastName})
}
case.failure(let error):
self.permissionsError = .fetchError(error)
}
}
}
和型號
uj5u.com熱心網友回復:
您在回圈的每次迭代中覆寫info
,因此最終它包含陣列最后一項的資料。
而不是使用回圈,您可以map
使用資料并將陣列轉換為字串(段落)joined(separator:)
VStack {
.onAppear {
info = contactsVM.contacts.map{"\($0.firstName) \($0.lastName);\($0.phone);//"}.joined(separator: "\n")
}
}
uj5u.com熱心網友回復:
當您運行 for 回圈時,每次迭代時 info 的值都會更改為新值。這就是您只看到一個值的原因。
改用這個。
var info = ""
for contact in contactsVM.contacts {
info.append("\(cont.firstName) \(cont.lastName);\(cont.phone) \n")
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/526033.html
標籤:迅速迅捷联系人
上一篇:Swift中屬性的隱含協議一致性