0

寻找有关 iOS 应用程序的一些建议。

本质上,我的应用程序所做的是生成一个 CSV 文件,该文件在一段时间内记录某些事件。所以用户可以按下一个按钮,一个条目将被添加到日志中,上面写着“类型 X 的事件发生在时间 T”

我这样做的方式是维护一个存储 NSStrings 的 NSMutableArray。每个事件都会向 NSMutableArray 添加一个字符串。

当用户完成会话时,他们可以“导出”文件。我正在使用 NSMutableArray 的 writeToFile;然后我使用电子邮件界面将该文件作为 CSV 文件发送到目标电子邮件。

一切正常,除了生成的 CSV 文件中包含一些元数据。具体来说,我相信在我看到的文件顶部以及在 excel 中打开时每行单元格的开头。

这是我正在使用的数据结构(NSMutableArray)或数据类型(NSString)中固有的东西吗?有没有办法让我只获取原始数据?

如果需要,我可以上传代码(不过我现在不在工作计算机附近,所以我正在试水,看看是否有一些简单的方法可以阻止看到这些元数据)。

谢谢!

4

1 回答 1

0

CSV 是一种非常简单的格式。您可以使用分号分隔字符串,然后使用NSOutputStream.

此代码假定您已经有一个包含 CSV 行的字符串数组:

NSOutputStream* csvoutput = [NSOutputStream outputStreamToFileAtPath:filepath append:NO];
[csvoutput open];
for (NSString* str in array) {
    NSString* tempStr = [str stringByAppendingString:@"\n"]; //new line
    NSData *strData = [tempStr dataUsingEncoding:NSUTF8StringEncoding];
    [csvoutput write:(uint8_t *)[strData bytes] maxLength:[strData length]];
}
[csvoutput close];

您最好创建一个模型类 ( Event) 并使用 Event-instances 而不是字符串填充数组。那更清洁,更高效。然后,您将在导出到文件时创建 CSV 字符串。

于 2012-11-20T21:02:51.360 回答