繁体   English   中英

NSInputStream对于存储在本地文档目录中的文件返回nil

[英]NSInputStream returned nil for file stored in local documents directory

我正在尝试解析下载的CSV文件的内容。 该文件存储在本地文档目录中的文件夹中。

文件路径 :/ Users / xyz / Library / Developer / CoreSimulator / Devices / C04089B6-4B9F-4F3A-A7C4-82225024CBE4 / data / Containers / Data / Application / 7412C7C6-71C7-47FE-810B-965116A6071C / Documents / rndftp / 99999920150415152

我正在使用此方法创建NSInputStream:

- (instancetype)initWithContentsOfDelimitedURL:(NSURL *)URL delimiter:(unichar)delimiter {
NSInputStream *stream = [NSInputStream inputStreamWithURL:URL];
return [self initWithInputStream:stream usedEncoding:NULL delimiter:delimiter];
}

在这里, URL是[NSURL URLWithString:filepath],但是为此, 为nil。

因此,它在这里崩溃:

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文件。

不好意思 ,这里有一个小警告:如果文件是本地下载的,我们将URL指定为fileURLwithPath :而不是URLWithString :,因此可以将导致错误的代码纠正为:

CHCSVParser *parser = [[CHCSVParser alloc] initWithContentsOfCSVURL:[NSURL fileURLWithPath:filePath]];
        [parser parse];
        NSArray *latestFileComponentsArray = [NSArray arrayWithContentsOfCSVURL:[NSURL fileURLWithPath:filePath]];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM