So like the title says I am getting information from parse and displaying it but i can't figure out how to do this with a date. I need to cover it to a String to display in a label. Ive done a bit or research and understand I will need to use a date formatter but What I don't understand is where I put it and once its formatted how i display it. Any help would be much appreciated!
var names = [String]()
var locations = [String]()
var dates = [NSDate]()
var imageFiles = [PFFile]()
var abouts = [String]()
override func viewDidLoad() {
super.viewDidLoad()
refresher = UIRefreshControl()
refresher.attributedTitle = NSAttributedString(string: "Pull to refresh")
refresher.addTarget(self, action: "refresh", forControlEvents: UIControlEvents.ValueChanged)
self.tableView.addSubview(refresher)
refresh()
PFGeoPoint.geoPointForCurrentLocationInBackground { (geoPoint, error) -> Void in
if let geoPoint = geoPoint {
PFUser.currentUser()?["location"] = geoPoint
PFUser.currentUser()?.saveInBackground()
var getLocalPostsQuery = PFQuery(className: "publicPosts")
if let latitude = PFUser.currentUser()!["location"].latitude {
if let longitude = PFUser.currentUser()!["location"].longitude {
getLocalPostsQuery.whereKey("searchLocation", withinGeoBoxFromSouthwest: PFGeoPoint(latitude: latitude - 0.5, longitude: longitude - 0.5), toNortheast: PFGeoPoint(latitude: latitude + 0.5, longitude: longitude + 0.5))
getLocalPostsQuery.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
if let objects = objects {
self.names.removeAll(keepCapacity: true)
self.locations.removeAll(keepCapacity: true)
self.abouts.removeAll(keepCapacity: true)
self.dates.removeAll(keepCapacity: true)
self.imageFiles.removeAll(keepCapacity: true)
for object in objects {
self.names.append(object["name"] as! String)
self.locations.append(object["location"] as! String)
self.dates.append(object["date"] as! String)
self.abouts.append(object["about"] as! String)
self.imageFiles.append(object["imageFile"] as! PFFile)
//self.attendings.append(object["attending"].count)
self.tableView.reloadData()
}
}
}
}
}
}
}
}
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 Incomplete implementation, return the number of sections
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return names.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let LECell = tableView.dequeueReusableCellWithIdentifier("LocalPostsCell", forIndexPath: indexPath) as! LocalPostsTableViewCell
imageFiles[indexPath.row].getDataInBackgroundWithBlock { (data, error) -> Void in
if let downloadedImage = UIImage(data: data!) {
LECell.postImage.image = downloadedImage
}
}
LECell.postName.text = names[indexPath.row]
LECell.postLocation.text = locations[indexPath.row]
LECell.postDate.text = dates[indexPath.row]
return LECell
}
let localPostsDetailSegue = "showLocalPostsDetailView"
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == localPostsDetailSegue {
let detailScene = segue.destinationViewController as! LocalPostsDetailViewController
if let indexPath = self.tableView.indexPathForSelectedRow {
let row = Int(indexPath.row)
detailScene.name = names[row]
detailScene.location = locations[row]
detailScene.date = dates[row]
detailScene.about = abouts[row]
detailScene.photo = imageFiles[row]
}
}
}
}