gpt4 book ai didi

swift - 在表格 View 中显示后端服务的数据

转载 作者:行者123 更新时间:2023-11-30 10:06:29 24 4
gpt4 key购买 nike

我正在从返回消息对象的后端服务获取数据,并且我想在 TableView 中显示消息。我遇到的问题是 View 加载和数据到达之间存在延迟。目前,一旦用户滚动表格 View ,消息就会显示。

override func viewDidLoad() {
super.viewDidLoad()
print("Message view did load")
username = preferences.valueForKey("username") as! String
userID = preferences.valueForKey("userID") as! String

// Do any additional setup after loading the view.
self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None
self.tableView.rowHeight = UITableViewAutomaticDimension

getUser()
}

func getUser(){
let currentUserAccessToken = EVUser.currentUser().accessToken
EVUser.fetchWithAccessToken(currentUserAccessToken, block: { (loggedInUser:EVUser!, error:NSError!) -> Void in
if (error == nil) {
self.user = loggedInUser
self.getMessages()
print("The user " + loggedInUser.username + " is logged in with valid access token.")
} else {
print("The user is not logged in: " + error.domain)
}
})

}

func getMessages(){

let dataStore: EVDataStore = EVDataStore.sharedInstance() as! EVDataStore

//Filter item
let request:EVFetchRequest = EVFetchRequest(kindOfClass: Message.self)

request.predicate = NSPredicate(
format: "CreatedByName == %@ OR (To == %@ AND CreatedByName == %@)",
username,
userID,
"Admin"
)
dataStore.executeFetchRequest(request, block: { (result, error ) -> Void in
if error == nil{
if result?.count > 0 {

for item in result{
print (item)
self.globalMessages.append(item as! Message)
}
self.displayMessages(self.globalMessages)

}else{
print("No items found")
}
}else{
print("Error: \(error)")
}
})
}


func displayMessages(messages:[Message]){
setupTableView()
}


func setupTableView(){
self.tableView.delegate = self;
self.tableView.dataSource = self;
}

有没有办法在消息到达后立即将其添加到 TableView 中?

最佳答案

您有不止一种选择来执行此操作。无论您是重新加载整个表格 View 还是插入一行。

重新加载表格 View

tableView.reloadData()

插入行

tableView.beginUpdates()
tableView.insertRowsAtIndexPaths([NSIndexPath(forRow: {your message array}.count-1, inSection: 0)], withRowAnimation: .Automatic)
tableView.endUpdates()

有关更多信息,请查看此处:Insert new cell into UITableView

关于swift - 在表格 View 中显示后端服务的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35656040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com