我想解析一个 .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];
编辑:
我正在为 iOS 6+ 开发。感谢您的精彩评论和回答。我希望得到正确的解决方案。
输入流
它不起作用。当我想使用输入流时,应用程序由于编码错误而崩溃。
不兼容的整数到指针转换将“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)
。