2015-12-10 2 views
0

Так как название говорит, что я получаю информацию от разбора и отображения, но я не могу понять, как это сделать с датой. Мне нужно прикрыть его до строки, чтобы отобразить ее на ярлыке. Я сделал немного или научился и понял, что мне нужно будет использовать формат даты, но то, что я не понимаю, это то, где я его помещаю, и после его форматирования, как я его показываю. Любая помощь приветствуется!Получение даты от синтаксического анализа и отображения строки Swift

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] 
     } 
    } 
} 
} 

ответ

1

Вы можете легко получить строку из NSDate и показать ее.

func getStringFromDate(date:NSDate)->String{ 

let dateFormatter = NSDateFormatter() 
dateFormatter.dateFormat = "MM/dd/yy, H:mm" 
return dateFormatter.stringFromDate(yourDate) // yourDate is your parse date 
} 

Вы также можете выбрать категорию.

+0

Хорошо, где бы я это положил? – m1234

+0

yourDate будет вашей точкой синтаксического анализа, и вы должны указать, где вы хотите назначить текст своей метке, потому что эта функция даст вам строку с датой –

+0

Итак, я бы поместил ее для объекта в объекты? Извините, я просто не понимаю, как назначить его, как только у меня есть строка – m1234

0
 Swift 3: 
     func getFormattedDate(string: String) -> String{ 
     let dateFormatter = DateFormatter() 
     dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss +zzzz" // 2017-04-20T09:40:30+0000 
     let formateDate = dateFormatter.date(from: string)! 
     dateFormatter.dateFormat = "dd-MM-yyyy" 
     return dateFormatter.string(from: formateDate) 
     } 
    let CreatedDates = "\(Date.getFormattedDate(string: "\(records["creationDate"]!)"))" 
print("Date : \(CreatedDates)") 
     //OutPut 
     20-04-2017 
+0

Пожалуйста, обратите внимание на некоторые пояснения. Ответы на исходный код не очень полезны в целом. – BartoszKP

+0

Почему? какая проблема? –

+0

Как я уже сказал, «исходные коды ответов не очень полезны * вообще *». Вы можете сделать свой ответ полезным для большего количества людей, если вы объяснили свой код. Начинающие, например, будут благодарны. Кроме того, это просто хорошая практика, чтобы объяснить, почему и как ваш ответ решает проблему с вопросом. – BartoszKP

Смежные вопросы