我在Swift文件中声明了一个String数组。
var postTitleArray : [String] = []
在我的viewDidLoad
方法中,我将值附加到我的数组中......
RestApiManager.sharedInstance.makeGetRequest("/development/vw_posts?filter=parent_term_id%20%3D%20%22%5B82%5D%22", onCompletion: { json in
for result in json["record"].arrayValue
{
let postTitle = result["post_title"].stringValue
print(postTitle)
self.postTitleArray.append(postTitle)
}
})
除此之外,我已将数组的计数用于numberOfRowsInSection来设置我的tableView的行号...
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return self.postTitleArray.count
}
但是,numberOfRowsInSection返回0,为什么会发生这种情况,我已将值分配到 postTitleArray ,任何人都可以帮我看看这个?理解...
答案 0 :(得分:2)
在调用numberOfRowsInSection
之前,您的API调用可能尚未完成。
在填充reloadData
后,尝试在UITableView
个实例上致电postTitleArray
。 (我在这里假设你引用了UITableView
,并且它被称为tableView
)
RestApiManager.sharedInstance.makeGetRequest("/development/vw_posts?filter=parent_term_id%20%3D%20%22%5B82%5D%22", onCompletion: { json in
for result in json["record"].arrayValue
{
let postTitle = result["post_title"].stringValue
print(postTitle)
self.postTitleArray.append(postTitle)
}
self.tableView.reloadData()
})
答案 1 :(得分:0)
你应该检查:
if let postTitle = result["post_title"]?.stringValue{
self.postTitleArray.append(postTitle)
self.tableView.reloadData()
}