gpt4 book ai didi

ios - Tableview 不重新加载数据

转载 作者:行者123 更新时间:2023-11-30 13:52:54 26 4
gpt4 key购买 nike

我正在尝试从服务中获取一些数据并尝试将其显示到 TableView 中,一切正常,但数据不会在第一次显示。

 override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view.
if NSUserDefaults.standardUserDefaults().objectForKey("PostedQuesIds") != nil{


arr = NSUserDefaults.standardUserDefaults().objectForKey("PostedQuesIds") as? NSArray

}
else{

print("I am getting no IDS !!!")
}

if self.arr != nil{

for quesIds in self.arr!{

print("ids '\(quesIds)'")

var url = "http://some.com/forum"
url.appendContentsOf(quesIds as! String)
WebHandler.sharedInstance.GET_REQ(url)

self.dataArray = WebHandler.sharedInstance.questionDetails?.objectForKey(quesIds) as? NSMutableArray


}
}

我尝试过

//NO LUCK WITH THE FOLLWING CODE, IT IS RUNNING AS EXPECTED BUT DATA IS NOT //SHOWN
// dispatch_async(dispatch_get_main_queue(), { () -> Void in
//
//
//
// print("I am called wtf?")
// self.tableView.reloadData()
//
// })

然后就想到通过NSNotification来做;我做了什么:

override func viewWillAppear(animated: Bool) {

nc.addObserver(self, selector: "reload", name: "reloadTable", object: nil)
}

func reload(){
//tried in main queue and out
dispatch_async(dispatch_get_main_queue(), { () -> Void in
print("I am called wtf?")
self.tableView.reloadData()
})

}

现在我不知道其中出了什么问题,仅供引用,我每次都会从 webhandler 类发布 nsnotification,并且它正在工作,就像我在日志中收到消息一样。请帮助我,我们将非常感谢您的任何帮助。

最佳答案

我发现两个可能的问题:

  1. 您的 WebHandler.sharedInstance.GET_REQ() 方法可能是异步的。如果我的猜测是正确的,那么在您的 Web 服务完成获取数据并将其分配给 self.dataArray 之前,就会调用 self.tableView.reloadData() 。您可能需要等待它完成后再调用 reloadData()
  2. 不确定为什么 for 循环中有以下行:

    self.dataArray = WebHandler.sharedInstance.questionDetails?.objectForKey(quesIds) as? NSMutableArray

    您确定不想追加到dataArray吗?

关于ios - Tableview 不重新加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34040920/

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