ios - TableView 重新加载未从 Backendless 正确更新

标签 ios swift uitableview backendless

我正在尝试从后面的无尽表中加载数据,但我无法正确加载该表。它只是保持空白。我在多个地方尝试过,它们会导致崩溃。它唯一可以去的地方是在最后一个错误调用之后。然而,该表保持空白。相关代码在我的 fetchingUserDataAsync() 函数中。

这是我的 TableView Controller :

import UIKit

class UserTableViewController: UITableViewController {

var backendless = Backendless.sharedInstance()

 let follow:Follow = Follow()



var usernames = [""]
var userids = [""]
var userEmails = [""]

var isFollowing = [false]


func fetchingUserDataAsync() {

     self.userids.removeAll(keepCapacity: true)
     self.usernames.removeAll(keepCapacity: true)
    self.isFollowing.removeAll(keepCapacity: true)

    print("\n============ Fetching user data using the ASYNC API ============")





    let query = BackendlessDataQuery()
    backendless.persistenceService.of(BackendlessUser.ofClass()).find(
        query,
        response: { ( name : BackendlessCollection!) -> () in
            let currentPage = name.getCurrentPage()

            for names in currentPage as! [BackendlessUser] {
                //print("User name = \(names.name)")

                if(names.name != self.backendless.userService.currentUser.name){

                self.usernames.append(names.name)

                    self.backendless.persistenceService.of(BackendlessUser.ofClass()).find(
                        query,
                        response: { ( objectId : BackendlessCollection!) -> () in
                            let currentPage = objectId.getCurrentPage()

                            for objects in currentPage as! [BackendlessUser] {
                                //print("User id = \(objects.objectId)")

                                if(objects.objectId != self.backendless.userService.currentUser.objectId){

                                    self.userids.append(objects.objectId)

                                    let currentUser = self.backendless.userService.currentUser
                                    let user = objects.objectId

                                    let whereClauseOne = "follower = '\(currentUser.objectId)' "

                                    let whereClauseTwo = "following= '\(user)'"

                                    //print ("I am following'\(whereClauseTwo)'")

                                    self.backendless.persistenceService.of(objects.ofClass()).find(
                                        query,
                                        response: { objects -> () in


                                            if let objects = objects{


                                                self.isFollowing.append(true)

                                            } else{

                                                self.isFollowing.append(false)

                                            }



                                        },
                                        error: { ( fault : Fault!) -> () in
                                            print("Server reported an error: \(fault)")
                                        }
                                    )


                                }


                            }


                        },
                        error: { ( fault : Fault!) -> () in
                            print("Server reported an error: \(fault)")
                        }
                    )


                }


            }



        },
        error: { ( fault : Fault!) -> () in
            print("Server reported an error: \(fault)")
        }
    )

    //////////////////////////////////////////////////////////////////////////////////
    self.tableView.reloadData()


}





override func viewDidLoad() {
    super.viewDidLoad()




    fetchingUserDataAsync()



}

最佳答案

您需要在数据数组中填充对象后调用重新加载数据,您需要将其放在响应闭包内而不是外部,因为响应闭包会在一段时间后调用 Async 并且现在会立即调用您的重新加载数据在您看来确实加载了。 当然,当你把它放进去时,你需要将重新加载的数据分派(dispatch)到主队列。

关于ios - TableView 重新加载未从 Backendless 正确更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36560721/

相关文章:

ios - 如何访问 Objective-C 中键的单个 JSON 值

ios - NSObject 返回空值

ios - 在呈现期间更改 UIAlertController 消息或标题

ios - 管理两个单元格之间的交换而不是更改其他 UITableViewcells 的 NSIndexpath

ios - 在 iOS 设备上滚动时,元素的 z-index 不起作用

ios - 如何在 Swift 中声明多维 bool 数组?

ios - PFQueryTableViewController 分页不适用于 heightForRowAtIndexPath

ios - SKNode 在 SKConstraint 范围内跟随另一个 SKNode

ios - 在 UITableViewCell 中缩放多行标签

objective-c - 如何从单元格的内容 View 中删除 subview ?