2015-10-30 2 views
0

У меня есть таймер, который подсчитывает текущую дату до даты, которую я установил в Parse (имя класса: «Дата»). Прямо сейчас он извлекает эти данные с помощью ObjectId, который я установил. Я бы хотел, чтобы он вызывал последний обновленный объект в классе, используя дату в столбце «updatedAt». Как я могу это сделать?Вызов последнего PFObject

super.viewDidLoad() 

    //  Retrieve the date in Parse 

    var query = PFQuery(className:"Date") 
     query.getObjectInBackgroundWithId("CSJFqvJDqs") { 
      (dateFromParse: PFObject?, error: NSError?) -> Void in 
      if error == nil && dateFromParse != nil { 
       // Process everything here 

       // Step 1: Get the current date. 
       let currentDate = NSDate() 

       // Step 2: Convert the dateFromParse PFObject into a NSDate object 
       let electionDateComponents = NSDateComponents() 
       electionDateComponents.day = dateFromParse!["Day"] as! Int 
       electionDateComponents.month = dateFromParse!["Month"] as! Int 
       electionDateComponents.year = dateFromParse!["Year"] as! Int 
       let electionDate = NSCalendar.currentCalendar().dateFromComponents(electionDateComponents)! 

       // Step 3: Find the difference between dateFromParse and currentDate 
       let timeToElection = electionDate.timeIntervalSinceDate(currentDate) 
       let daysToElection = (((timeToElection/60)/60)/24) 
       print(daysToElection) 

       //    Step 4: Display the number of days of difference on countDown.text 
       let daysText = String(format: "%.0f days", floor(daysToElection)) 
       self.countDown.text = daysText 
      } else { 
       print(error) 
      } 
     } 
    } 

ответ

0

Вы должны просматривать SDK документации и руководство:

https://parse.com/docs/ios/api/

https://parse.com/docs/ios/guide#queries

Запросы имеют методы сортировки. Вы хотите сделать что-то вдоль линий

[query sortDescending:@"updatedAt"]; 
[query getFirstObjectInBackgroundWithBlock:^(PFObject *dateObject, NSError *error) 
{ 
    //do your stuff 
}]; 

К сожалению, только понял, что я дал вам Obj-C синтаксис и вы используете скор. Я не знаком с быстрым, но методы должны быть одинаковыми. Просто нужно назвать стиль Swift.

+0

Это было близко к этому! Я отправил свое решение. Спасибо за помощь! –

+0

Нет проблем. Пока я не писал код для вас, я дал вам ответ на ваш вопрос. Вы спросили, как получить последний обновленный объект, используя ключ updatedAt. Мой ответ должен быть отмечен как правильный. –

0

Понял это! Сначала мне нужно было создать дату выборов в «выборах». Затем мне пришлось создать константу currentDate, чтобы я мог использовать ее как ссылку для «largeThanOrEqualTo».

let date = NSDate() 
let cal = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)! 
let currentDate = cal.startOfDayForDate(date) 

    let query = PFQuery(className:"Date") 
    query.whereKey("electionDate", greaterThanOrEqualTo: currentDate) 
    query.orderByAscending("electionDate") 
    query.getFirstObjectInBackgroundWithBlock { 
Смежные вопросы