我想查詢使用解析將字符串添加到數組。然後我想把這些字符串放到我的UITableView的單元格中。但是,每次運行應用程序時,似乎都沒有出現在我的桌面上。這裏是我的代碼,如果有人可以幫助解釋一些原因,它可能不會出現UITableView Swift問題
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
var friendsArray: [String] = []
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
var usrname = currentUser?.username
var query = PFQuery(className:"Relation")
query.whereKey("Sender", equalTo : usrname!)
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
// The find succeeded.
//println("Successfully retrieved \(objects) scores.")
// Do something with the found objects
if let objects = objects as? [PFObject] {
for object in objects {
var friendName = object["Friend"] as! String
println(friendName)
self.friendsArray.append(friendName)
}
}
}
else {
// Log details of the failure
println("Error: \(error!) \(error!.userInfo!)")
}
}
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return friendsArray.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("Cell") as! UITableViewCell
cell.textLabel?.text = self.friendsArray[indexPath.row]
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
}
那麼我能做些什麼來解決這個問題? – Justin
與昨天的同一問題類似。他們在異地使用異步代碼。 http://stackoverflow.com/questions/30361517/asynchronous-tableviewcell-data/30361658#30361658。原則和解決方案選項相似。 – Gruntcakes
我很困惑,我可以確保Im在ViewdidLoad之後運行CellforRowAtIndexPath函數,因爲我認爲ViewDidLoad或者甚至是ViewDidAppear都會先發生 – Justin