gpt4 book ai didi

ios - viewDidLoad 中的函数 dataTaskWithRequest 不影响变量

转载 作者:行者123 更新时间:2023-11-30 13:53:02 24 4
gpt4 key购买 nike

我想填充一个UITableViewController,因此在我的viewDidLoad中我有以下代码:

override func viewDidLoad() {
let rc = RestCaller()
rc.get( "events" , authenticate: true) {
error, data in

if error != nil {
print("error")
}

let events = JSON( data: data )
self.events = events["data"].arrayValue
}

}

这是我的 get 函数:

func get( route: String, authenticate: Bool?, next: (error: NSError?, data: NSData) -> Void )
{
let request = NSMutableURLRequest( URL: NSURL( string: self.baseUrl + route )! )

request.HTTPMethod = "GET"
if authenticate != nil {
request.addValue( getUserProperty( "USER_TOKEN" ) as! String, forHTTPHeaderField: "usertoken")
request.addValue( (getUserProperty( "USER_ID" )?.stringValue)!, forHTTPHeaderField: "userid" )
}

_ = NSURLSession.sharedSession().dataTaskWithRequest( request ) {
data, response, error in

next(error: error, data: data!)

}.resume()
}

但是在 numberOfRowsInSection 方法中:

return events.count // return 0 

但是如果我在这里打印 self.events:

override func viewDidLoad() {
...

let events = JSON( data: data )
self.events = events["data"].arrayValue
print(self.events) // not empty

...

}

我不明白为什么:(

有什么想法吗?谢谢!

最佳答案

您似乎忘记重新加载表格。

override func viewDidLoad() {
let rc = RestCaller()
rc.get( "events" , authenticate: true) {
error, data in

if error != nil {
print("error")
}

let events = JSON( data: data )
self.events = events["data"].arrayValue

dispatch_async(dispatch_get_main_queue()) { () -> Void in
self.tableView.reloadData()

}
}

关于ios - viewDidLoad 中的函数 dataTaskWithRequest 不影响变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34017066/

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