我正在尝试解析下载的CSV文件的内容。该文件存储在本地文档目录中的文件夹中。
文件路径: / Users / xyz / Library / Developer / CoreSimulator / Devices / C04089B6-4B9F-4F3A-A7C4-82225024CBE4 / data / Containers / Data / Application / 7412C7C6-71C7-47FE-810B-965116A6071C / Documents /rndftp/99999920150415152101.csv
我正在使用此方法创建NSInputStream:
- (instancetype)initWithContentsOfDelimitedURL:(NSURL *)URL delimiter:(unichar)delimiter {
NSInputStream *stream = [NSInputStream inputStreamWithURL:URL];
return [self initWithInputStream:stream usedEncoding:NULL delimiter:delimiter];
}
此处网址为[NSURL URLWithString:filepath] ,但为此,流将为零。
因此,它崩溃了:
CHCSVParser *parser = [[CHCSVParser alloc] initWithContentsOfCSVURL:[NSURL URLWithString:filePath]];
[parser parse];
NSArray *latestFileComponentsArray = [NSArray arrayWithContentsOfCSVURL:[NSURL URLWithString:filePath]];
错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: stream'
可能的原因是什么?我正在使用CHCSVParser开源来解析csv文件。
答案 0 :(得分:4)
我的不好,这里有一个小警告:如果文件是本地下载的,我们将URL指定为 fileURLwithPath :而不是URLWithString :,因此可以纠正导致错误的代码为:
CHCSVParser *parser = [[CHCSVParser alloc] initWithContentsOfCSVURL:[NSURL fileURLWithPath:filePath]];
[parser parse];
NSArray *latestFileComponentsArray = [NSArray arrayWithContentsOfCSVURL:[NSURL fileURLWithPath:filePath]];