.csv ファイルを解析したい。これには、CHCSV パーサーを使用します。しかし、パーサーが解析を開始するビューにプッシュすると、アプリがクラッシュします。
キャッチされていない例外 'NSMallocException' が原因でアプリを終了しています。
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)
。