Подход к отображению новых элементов по-другому в таблице PFQueryTable

#ios #iphone #uitableview #refresh #parse-platform

#iOS #iPhone #uitableview #обновить #синтаксический анализ-платформа

Вопрос:

Итак, я изучил Anypic (https://github.com/ParsePlatform/Anypic/blob/master/Anypic-iOS ) источник и попытался воспроизвести эту идею.

У меня есть пользовательская ячейка, в этой ячейке есть setIsNew:isNew так же, как вас учит Anypic. Мой PFQueryTableViewController содержит весь код, связанный со свойством lastRefresh .

НО lastRefresh обновляется в методе objectsDidLoad, который вызывается ПЕРЕД перезагрузкой ячеек.

ViewController:

 - (void)viewDidLoad
{
    [super viewDidLoad];
    self.lastRefresh = [[NSUserDefaults standardUserDefaults] objectForKey:@"lastRefresh"];
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    PFObject *obj = self.objects[indexPath.section];

...

    if ([self.lastRefresh compare:obj.createdAt] == NSOrderedAscending) {
        [cell setIsNew:YES];
    } else {
        [cell setIsNew:NO];
    }
    return cell;
}

-(void)objectsDidLoad:(NSError *)error
{
    [super objectsDidLoad:error];
    self.lastRefresh = [NSDate date];
    [[NSUserDefaults standardUserDefaults] setObject:self.lastRefresh forKey:@"lastRefresh"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}
  

Пользовательская ячейка:

 - (void)setIsNew:(BOOL)isNew
{
    if (isNew) {
        [self.mainView setBackgroundColor:[UIColor colorWithRed:1 green:0.9216 blue:0.5608 alpha:0.5]];
    } else {
        [self.mainView setBackgroundColor:[UIColor whiteColor]];
    }
}
  

Это ни к чему не приводит. Последнее обновление всегда будет позже, чем object.createdAt , поэтому все ячейки будут выглядеть точно так же.

Что я делаю не так? Или есть другое умное решение?

Спасибо и извините, если это вопрос новичка.

Комментарии:

1. object.createdAt это дата, когда вы создали объект в базе данных. почему lastRefresh всегда раньше, чем object.createdAt ?

2. под более ранним я подразумеваю более поздний.

3. К вашему сведению, когда речь идет о датах, «ранее» обычно принято ссылаться на дату в прошлом, «позже» относится к датам, которые происходят после другой даты.