Ich versuche eine Verbindung zwischen "Benutzer" und "Kommentare" auf mongoDB zu erstellen, um Kommentare zu meiner App zu erhalten.Verbindung mit mongoDB und Parse in Swift
Dies ist mein Code:
let query = PFQuery(className: "comments")
query.whereKey("to", equalTo: commentuuid.last!)
query.skip = count - self.page
query.addAscendingOrder("createdAt")
query.findObjectsInBackground(block: { (objects: [PFObject]?, error: Error?) in
if error == nil {
// Clean up
self.usernameArray.removeAll(keepingCapacity: false)
self.avaArray.removeAll(keepingCapacity: false)
self.commentArray.removeAll(keepingCapacity: false)
self.dateArray.removeAll(keepingCapacity: false)
// find related objects
for object in objects! {
let infoQuery = PFQuery(className: "_User")
infoQuery.getObjectInBackground(withId: object.object(forKey: "id") as! String, block: { (test: PFObject?, error: Error?) in
if error == nil {
print("YES")
self.usernameArray.append(test!.object(forKey: "username") as! String)
} else {
print(error!.localizedDescription)
}
})
self.commentArray.append(object.object(forKey: "comment") as! String)
self.dateArray.append(object.createdAt)
self.tableView.reloadData()
// Scroll to bottom
self.tableView.scrollToRow(at: IndexPath(row: self.commentArray.count - 1, section: 0), at: .bottom, animated: true)
}
} else {
print(error!.localizedDescription)
}
})
Diese Linien gut ausgeführt werden:
self.commentArray.append(object.object(forKey: "comment") as! String)
self.dateArray.append(object.createdAt)
Aber das eine nicht:
let infoQuery = PFQuery(className: "_User")
infoQuery.getObjectInBackground(withId: object.object(forKey: "id") as! String, block: { (test: PFObject?, error: Error?) in
if error == nil {
print("YES")
self.usernameArray.append(test!.object(forKey: "username") as! String)
} else {
print(error!.localizedDescription)
}
})
Ich versuchte, die usernameArray und dateArray zu drucken (nur um den Unterschied zu sehen) in der CellForRowAt-Funktion.
Wenn ich die Ansicht starte, ist benutzernameArray leer und dateArray ist nicht. Wenn ich ein wenig scrolle, ist der BenutzernameArray gefüllt (aber ich muss scrollen, um das Array zu füllen, was nicht akzeptabel ist).