如何在文档目录中保存当前日期和时间值?

时间:2012-12-05 08:20:47

标签: iphone xcode uitableview date

enter image description here

由于我上面的屏幕截图显示我想在Tableview的每个单元格中显示两个值。如果我想在同一类中的Cell标签中显示我想要显示的数据,我可以做到这一点,但问题是我试图从其他视图或其他类中获取这些标签(NSDocumentDirectory,NSUserDomainMask,YES )因为我成功地显示了一个值作为我的屏幕截图显示,但是由当前数据和时间显示组成的另一部分仍然是我的问题。现在这是我尝试的代码。

NSString *fina = [NSString stringWithFormat:@"%@",mySongname];
NSArray  *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docsDir  = [dirPaths objectAtIndex:0];
    NSString *soundFilePath = [docsDir stringByAppendingPathComponent:@"MyRecordings"];
    if (![[NSFileManager defaultManager] fileExistsAtPath:soundFilePath])
        [[NSFileManager defaultManager] createDirectoryAtPath:soundFilePath withIntermediateDirectories:NO attributes:nil error:nil];
    soundFilePath = [soundFilePath stringByAppendingPathComponent:fina];
    recordedTmpFile = [NSURL fileURLWithPath:soundFilePath];
    recorder = [[ AVAudioRecorder alloc] initWithURL:recordedTmpFile settings:recordSetting error:&error];
    [recorder setDelegate:self];
    [recorder prepareToRecord];
    [recorder record];
    [recordSetting release];

上面的代码部分工作正常,它在Tableview Cell中显示我的screenshow.Now在同一个函数中的值我尝试获取数据以红色部分显示它,这是我使用下面代码的Tableview Cell中的UILabel。< / p>

 NSDate* now = [NSDate date];
 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
 [dateFormatter setDateFormat:@"dd:MMM:YY_hh:mm:ss a"];
 NSString *file= [dateFormatter stringFromDate:now];
 NSLog(@"myfinaldate:%@",file);

现在我想将此日期值保存在我上面使用的同一目录中,并将其显示为UITableview的红色部分。 现在这里是我的代码,我使用这个Tableview并获取这些文档目录值。

- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *documentPath = [documentsDirectory stringByAppendingPathComponent:@"MyRecordings"];
directoryContent = [[NSFileManager defaultManager] directoryContentsAtPath:documentPath];
      NSLog(@"file found %i",[directoryContent count]);
[directoryContent retain];
[self.tableView reloadData];
  }

  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
static NSInteger StateTag = 1;
static NSInteger CapitalTag = 2;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    UILabel *capitalLabel = [[UILabel alloc] initWithFrame:CGRectMake(2, 2, 80, 20)];
    //capitalLabel.text=@"mydata";
    capitalLabel.backgroundColor=[UIColor redColor];
    capitalLabel.tag = CapitalTag;
    [cell.contentView addSubview:capitalLabel];
    [capitalLabel release];

    UILabel *stateLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 22, 310, 20)];
    stateLabel.tag = StateTag;
    [stateLabel setFont:[UIFont systemFontOfSize:14]];
    stateLabel.adjustsFontSizeToFitWidth=YES;
    [cell.contentView addSubview:stateLabel];
    [stateLabel release];

}
UILabel * stateLabel = (UILabel *) [cell.contentView viewWithTag:StateTag];
//UILabel * capitalLabel = (UILabel *) [cell.contentView viewWithTag:CapitalTag];

stateLabel.text = [directoryContent objectAtIndex:indexPath.row];
//capitalLabel.text = [directoryContent1 objectAtIndex:indexPath.row];
  return cell;
 }

现在我想总结一下这个问题。 我们如何将日期和时间值保存在同一目录中,然后如何在UITableview Cell的Red部分显示? capitalLabel是我的Redpart of Cell来显示日期和时间,这是一个问题。 stateLabel全部准备好显示值。所以这个标签没问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

就这样做....

您可以将NSCachesDirectory设置为NSDocumentDirectory

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:yourComponent];
//    NSLog(@"Path : %@",writableDBPath);

NSMutableDictionary *plistArr = [[NSMutableDictionary alloc] initWithContentsOfFile:writableDBPath];