我想解析一个 .csv 文件。为此,我使用 CHCSV 解析器。但是当我将其推入视图以开始解析时,应用程序崩溃。
由于未捕获的异常 'NSMallocException',应用程序终止,原因是: '* -[NSConcreteMutableData appendBytes:length:]: 无法为长度(4294967295)分配内存'
NSString *filePath = @"http://somewhere.com/test.csv";
NSString *fileContent = [NSString stringWithContentsOfURL:[NSURL URLWithString:filePath] encoding:NSUTF8StringEncoding error:nil];
self.csvParser = [[CHCSVParser alloc] initWithContentsOfCSVFile:fileContent];
编辑:
我正在为iOS6+开发。感谢大家的评论和回答。我希望能得到正确的解决方案。
输入流
它不能工作。当我想使用输入流时,应用程序会因错误的编码而崩溃。
不兼容的整数转换为指针,将'int'发送到类型为'NSStringEncoding *'(也称为'unsigned int *')的参数
NSData *downloadData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://example.com/test.csv"]];
NSInputStream *stream = [NSInputStream inputStreamWithData:downloadData];
self.csvParser = [[CHCSVParser alloc] initWithInputStream:stream usedEncoding:NSUTF8StringEncoding delimiter:@";"];
self.csvParser.delegate = self;
[self.csvParser parse];
CSV字符串
NSString *filePath = @"http://example.com/test.csv";
NSString *fileContent = [NSString stringWithContentsOfURL:[NSURL URLWithString:filePath] encoding:NSUTF8StringEncoding error:nil];
self.csvParser = [[CHCSVParser alloc] initWithCSVString:fileContent];
self.csvParser.delegate = self;
[self.csvParser parse];
此解析仅适用于
(null)
。