显示带有文件名和 NSDateString 的唯一文件名作为 TableView 标题(需要帮助)
Displaying unique file name with File name and NSDateString as TableView titles (need help)
在我的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 ++;
我还想 re-arrange 代码,以便文件 "number" 出现在 "NSDate" 之前,但这是它工作的唯一方式,即; _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 中的数组标题如图所示。
Table view cells comparison
我想要做的是删除每个单元格中标题的日期(创建)部分,并将其重新定位到 detailtextLabel 标题中。
我可以通过创建一个单独的 NSDate class 来做到这一点,主视图控制器和详细视图控制器可以调用(或使用)
同时,但我还没有成功尝试这种方法。
例如,如果使用 JSON 或 plist 为每个保存的文件属性创建一个字典,这样会更好吗?
任何对此的帮助将不胜感激,如果 post 需要更清楚的说明,也请告诉我。
最后,我在论坛上广泛搜索了这个问题的简洁解决方案,但至今仍未找到解决方法。
非常感谢。
正如我看到你的代码,日期字符串 return 似乎是 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);
谢谢..
在我的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 ++;
我还想 re-arrange 代码,以便文件 "number" 出现在 "NSDate" 之前,但这是它工作的唯一方式,即; _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 中的数组标题如图所示。
Table view cells comparison
我想要做的是删除每个单元格中标题的日期(创建)部分,并将其重新定位到 detailtextLabel 标题中。 我可以通过创建一个单独的 NSDate class 来做到这一点,主视图控制器和详细视图控制器可以调用(或使用) 同时,但我还没有成功尝试这种方法。
例如,如果使用 JSON 或 plist 为每个保存的文件属性创建一个字典,这样会更好吗? 任何对此的帮助将不胜感激,如果 post 需要更清楚的说明,也请告诉我。
最后,我在论坛上广泛搜索了这个问题的简洁解决方案,但至今仍未找到解决方法。
非常感谢。
正如我看到你的代码,日期字符串 return 似乎是 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);
谢谢..