1

在此处输入图像描述

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

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 单元格中显示我的屏幕显示的值。现在在同一个函数中,我尝试获取数据以红色部分显示它,这是我在 Tableview 单元格中使用下面的代码的 UILabel。

 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 的红色部分中显示?capitalLabel 是我的单元格的红色部分,用于显示有问题的日期和时间。stateLabel 全部准备好显示值。所以这个标签没问题。任何帮助将不胜感激。

4

1 回答 1

0

就这样做....

你可以设置NSCachesDirectoryNSDocumentDirectory

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];
于 2012-12-05T12:12:18.957 回答