我正在尝试从Parse中提取对象并将它们固定到本地存储,然后将对象拉入表格视图。查询似乎是问题,我已经遵循了许多教程和阅读文档,我相信我做的是正确的。
查询肯定与Parse数据库匹配,并且指向数据库的链接肯定存在,因为我能够登录并创建帐户。
打印查询结果打印..
从本地存储成功检索0个作业。
从数据库成功检索0个作业。 代码如下
import UIKit
import Parse
class JobsTableViewController: UITableViewController, PFLogInViewControllerDelegate, PFSignUpViewControllerDelegate {
var jobObjects: NSMutableArray! = NSMutableArray()
override func viewDidLoad() {
super.viewDidLoad()
self.refreshControl?.addTarget(self, action: "handleRefresh:", forControlEvents: UIControlEvents.ValueChanged)
}
// Mark: When view appears, if a user exists run functions
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
if (PFUser.currentUser() == nil) {
self.performSegueWithIdentifier("checkLogged", sender: self)
} else {
self.fetchAllObjectsFromLocalDatastore()
self.fetchAllObjects()
}
}
// Mark: Fetch all objects from local storage
func fetchAllObjectsFromLocalDatastore() {
var query: PFQuery = PFQuery(className: "Jobs")
query.fromLocalDatastore()
query.whereKey("Attendants", equalTo: PFUser.currentUser()!.username!)
query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
if error == nil {
// The find succeeded.
println("Successfully retrieved \(objects!.count) jobs from local storage.")
// Do something with the found objects
if let objects = objects as? [PFObject] {
for object in objects {
println(object.objectId)
}
}
} else {
// Log details of the failure
println("Error: \(error!) \(error!.userInfo!)")
}
}
}
// Mark: Fetch all objects from Parse.
func fetchAllObjects() {
PFObject.unpinAllObjectsInBackgroundWithBlock(nil)
var query: PFQuery = PFQuery(className: "Jobs")
query.whereKey("Author", equalTo: PFUser.currentUser()!.username!)
query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
if error == nil {
// The find succeeded.
println("Successfully retrieved \(objects!.count) jobs from database.")
// Do something with the found objects
if let objects = objects as? [PFObject] {
for object in objects {
println(object.objectId)
}
}
} else {
// Log details of the failure
println("Error: \(error!) \(error!.userInfo!)")
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Potentially incomplete method implementation.
// Return the number of sections.
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete method implementation.
// Return the number of rows in the section.
return self.jobsObjects.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! EventsTableViewCell
var object: PFObject = self.jobObjects.objectAtIndex(indexPath.row) as! PFObject
cell.titleLabel?.text = object["JobName"] as? String
cell.mainTextLabel?.text = object["Description"] as? String
return cell
}
func handleRefresh(refreshControl: UIRefreshControl) {
// Do some reloading of data and update the table view's data source
// Fetch more objects from a web service, for example...
// Simply adding an object to the data source for this example
self.tableView.reloadData()
refreshControl.endRefreshing()
}
}