Не удалось получить значения updatedAt или createdAt из объектов Parse

Я опытный разработчик Android, пытающийся запустить прототип приложения iOS, используя службу Parse и sdk (https://www.parse.com/).

Это здорово, и я без проблем могу получить все свои объекты и их ценности, все работает нормально.

Однако я не могу получить значение updatedAt, автоматически созданное Parse для каждого объекта.
Это необходимо для меня, и я не хочу, чтобы сохранить временную метку времени как строку, когда данные сидят прямо там.

Это суть того, что я делаю.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}  

// this works fine 
cell.textLabel.text = [object objectForKey:@"name"];

//substring however does not
NSDate *updated = [object objectForKey:@"updatedAt"];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EEE, MMM d, h:mm a"];
cell.detailTextLabel.text = [NSString stringWithFormat:@"Lasted Updated: %@", [dateFormat stringFromDate:update]];

//i also tried like this at first
 cell.detailTextLabel.text = [NSString stringWithFormat:@"Lasted Updated: %@", [object objectForKey:@"updatedAt"]];

return cell;

}

Ответ 1

Глупый Мэтт. Я думаю об этом в течение дня, а затем осознаю свою ошибку, после того, как я опубликую ее.

updatedAt является свойством для всех PFObjects, нет необходимости извлекать его с помощью ключа.

Для объекта PFObject, который называется object...

 NSDate *updated = [object updatedAt];
 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
 [dateFormat setDateFormat:@"EEE, MMM d, h:mm a"];
 cell.detailTextLabel.text = [NSString stringWithFormat:@"Lasted Updated: %@", [dateFormat stringFromDate:updated]];

Working Date String

@Parse, кончик шляпы

Ответ 2

Для Swift:

let dateUpdated = object.updatedAt! as NSDate
let dateFormat = NSDateFormatter()
dateFormat.dateFormat = "EEE, MMM d, h:mm a"
cell.updatedAtLabel.text = NSString(format: "%@", dateFormat.stringFromDate(dateUpdated))

Ответ 3

У меня просто была такая же проблема, не обращайтесь к ней с помощью objectForKey, просто обращайтесь к ней напрямую через свойство createdAt.

в Swift

object.createdAt

Как указано в документах, клавиши:

Это не включает createdAt, updatedAt, authData или objectId. Это включает в себя такие вещи, как имя пользователя и ACL.