在我的iOS应用程序项目中,我创建了保存在文档目录文件结构中的录制的audio.caf文件,然后将其显示为数组,列在TableView的连续TableViewCells中。 我想要显示作为标题创建的文件的唯一“音频文件名”和“NSDate” 每个单元格内连续和副标题。 用于在给定路径上创建录制文件的代码位于Mainviewcontroller中。
NSArray *pathComponents = [NSArray arrayWithObjects:
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject],
_filePath,
nil];
newURL = [NSURL fileURLWithPathComponents: pathComponents];
_filePath = [documentsDirectory stringByAppendingPathComponent:@"audio %@ %@.caf"];
// Initiate and prepare the recorder
//NSInteger count = 0;
// To create the date string <---
NSString *dateString;
NSDate *aDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
dateString = [dateFormatter stringFromDate:aDate];
NSLog(@"datestring %@",dateString);
int count = 0;
int arrayCount = [audioFileArray count];
documentsDirectory = [pathComponents objectAtIndex:0];
NSError *error = nil;
// To create the recorded file name and date combined <---
_audioFileArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:&error];
filename = [NSString stringWithFormat:@"audio %@ %@.caf", dateString,[NSNumber numberWithFloat:[_audioFileArray count]]];
count ++;
我还想重新安排代码,以便文件&#34; number&#34;来自&#34; NSDate&#34;,但这是它工作的唯一方式,即; _audioFileArray计数位之前的DateString!
并且,在UITableView fileViewController中,显示文件名文本的位是:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *simpleTableIdentifier = @"simpleTableItem";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:simpleTableIdentifier];
}
NSString *name = [_filteredArray objectAtIndex:indexPath.row];
//add the text display that is drawn from the array list
cell.textLabel.text = name;
cell.textLabel.text = [_filteredArray objectAtIndex:indexPath.row];
cell.detailTextLabel.text = [NSString stringWithFormat:@"%@ is the recorded date", name];
return cell
此图中显示了UITableViewCells中显示的数组标题。
我要做的是删除每个单元格中标题的日期(已创建)部分,并将其重新定位在detailtextLabel标题中。 我可以通过创建一个可由主视图控制器和详细视图控制器调用(或利用)的单独NSDate类来实现此目的 同时,但我还没有成功尝试这种方法。
例如,通过使用JSON或plist为每个保存的文件属性创建字典,这样可以更好地工作。 非常感谢任何帮助,如果这篇文章需要更清晰,请告诉我。最后,我在论坛上进行了长时间的广泛搜索,以找到解决此问题的简明方法,并且尚未找到解决方案。
非常感谢。
答案 0 :(得分:0)
当我看到你的代码时,似乎日期字符串返回nil或空值。 替换你的代码:
NSString *dateString;
NSDate *aDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
dateString = [dateFormatter stringFromDate:aDate];
NSLog(@"datestring %@",dateString);
使用此代码:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-yyyy"];
NSDate *currentDate = [NSDate date];
NSString *dateString = [formatter stringFromDate:currentDate];
NSLog(@"datestring %@",dateString);
谢谢..