我有一个图片幻灯片应用程序,允许用户评价3张图片。收视率得到存储在一个名为rated
这样NSMutableArray
:为.csv文件格式化NSMutableArray的内容
2014-01-06 07:10:23.040 SlideShowSurvey[50425:70b] (
1, <-- Rating for Picture 1
2, <-- Rating for Picture 2
3 <-- Rating for Picture 3
)
然后,这是使用下面的代码保存为.csv文件:
-(void)saveRatings
{
NSString *picRatings = [NSString stringWithFormat:@"%@, \n",self.rated];
// Find documents directory
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *survey = [docPath stringByAppendingPathComponent:@"pictureRatings.csv"];
// Create new file if none exists
if (![[NSFileManager defaultManager] fileExistsAtPath:survey])
{
[[NSFileManager defaultManager] createFileAtPath:survey contents:nil attributes:nil];
}
NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:survey];
[fileHandle seekToEndOfFile];
[fileHandle writeData:[picRatings dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
}
然后我就可以显示该.csv的结果文件添加到UITextView,尽管它显示了数组的结构。例如,多个结果显示为:
(
1,
2,
3
),
(
1,
2,
3
),
(
1,
2,
3
)
有没有一种方法可以格式化数组,使其保存为1,2,3?我能否添加像图片1,图片2,图片3的列标题?例如,我想在UITextView的类似结果显示:
Picture 1, Picture 2, Picture 3
1,2,3
1,2,3
1,2,3
我试图寻找,但似乎无法找到答案。任何帮助表示赞赏!谢谢。
编辑:我已经解决了这个感谢jrturton的解决方案,使用下面的代码:
// Set column titles for .csv
NSArray *columnTitleArray = @[@"Picture 1", @"Picture 2", @"Picture 3"];
NSString *columnTitle = [columnTitleArray componentsJoinedByString:@","];
NSString *columnTitleToWrite = [columnTitle stringByAppendingString:@"\n"];
// Separate ratings into cells
NSString *picRatings = [rated componentsJoinedByString:@","];
NSString *picRatingsToWrite = [picRatings stringByAppendingString:@"\n"];
// Find documents directory
..
然后添加此的方法,以确保列标题是只设置在一个新的文件被创建:
// Create new file if none exists
if (![[NSFileManager defaultManager] fileExistsAtPath:survey])
{
[[NSFileManager defaultManager] createFileAtPath:survey contents:nil attributes:nil];
// Set title for new file
NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:survey];
[fileHandle writeData:[columnTitleToWrite dataUsingEncoding:NSUTF8StringEncoding]];
}
..
为什么不使用自定义的UITableCellView来显示 – Retro
我试过这样做,但我只知道如何从'NSMutableArray'本身加载结果,而不是从.csv文件加载结果。我对Objective-C非常陌生。你知道任何代码示例显示如何将.csv加载到'UITableView'中吗? – rosshump