2013-07-12 4 views
0

У меня есть приложение, в которое встроен менеджер загрузок. Когда файл загружается, он сохраняется в папке внутри папки документов. Теперь я внедрил отметку времени и даты в ячейке просмотра таблицы. Тем не менее, при переключении с одного контроллера представлений на мой вид таблицы время и дата обновляются до текущего времени.Timestamp продолжает подсчитывать

Ниже мой код, с которым я работаю, и, как всегда, любая помощь будет оценена.

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

    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell == nil) 
    { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; } //did the subtitle style 

    NSUInteger row = [indexPath row]; 
    cell.textLabel.text = [directoryContents objectAtIndex:row]; 


    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"EEE, MMM/d/yyyy, hh:mm aaa"]; 
    NSDate *date = nil; 

    if (indexPath.row == 0) 
    { 
     date = [NSDate date]; 
     NSString *dateString = [dateFormatter stringFromDate:date]; 
     cell.detailTextLabel.text = dateString; 
    } 

    return cell; 
} 

ответ

0

Решил обратится к этому вопросу. Я закончил тем, что понял это (не то, чтобы я работал над этим все это время).

Любой Вот что я сделал:

//Setting the date 
    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; 
    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"my folder"]; 
    filePath = [filePath stringByAppendingPathComponent:fileName]; 

    NSDate *creationDate = nil; 
    NSDictionary *attributes = [fileManager attributesOfItemAtPath:filePath error:nil]; 
    creationDate = attributes[NSFileCreationDate]; 

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"MM-dd-yyyy"]; 
    NSString *dateString = [dateFormatter stringFromDate:creationDate]; 

    cell.detailTextLabel.text = dateString; 

Надеется, что это помогает кому-то.

2

tableView:cellForRowAtIndexPath: будет вызываться каждый раз, когда таблица перезагрузки, и, следовательно, время будет обновлено до текущего времени, потому что [NSDate date] будет называться снова.

Вместо того, чтобы рассчитывать дату в tableView:cellForRowAtIndexPath:, вы должны сохранить ее в другом месте (например, на уровне класса NSMutableArray) и установить ее, когда файл завершит загрузку. Таким образом, он не будет сбрасываться каждый раз, когда загружается таблица.

+0

+1 хорошее решение предложение –

+0

Имеет смысл, но если я установил его в диспетчере загрузки, как бы он отображался в моем представлении таблицы? Если это помогает, я использую HCDownload для загрузки моих файлов. – ChrisOSX