CSV ファイルの内容を配列に取り込もうとしています。行ごとに1つのレコードを作成する前にこれを実行し、改行文字を使用して文字セットとしてscanUpToCharactersFromSet:intoString:
渡すと、次のようになります。newlineCharacterSet
while ([lineScanner scanUpToCharactersFromSet:[NSCharacterSet newlineCharacterSet]
intoString:&line])
現在、エントリ自体の多くに改行文字が含まれているファイルを扱っています。各レコード (文字) の最後に一意の文字を追加しようとしました*
が、ループは 1 回しか実行されません。私が知らないwhileループを壊しているものはありますか? これが私が今使っているコードです:
NSError *error;
NSString *data = [[NSString alloc] initWithContentsOfFile:[[self delegate] filePath] encoding:NSUTF8StringEncoding error:&error];
NSScanner *lineScanner = [NSScanner scannerWithString:data];
NSString *line = nil;
// Start parsing the CSV file
while ([lineScanner scanUpToCharactersFromSet:[NSCharacterSet characterSetWithCharactersInString:@"*"]
intoString:&line]) {
NSArray *elements = [line componentsSeparatedByString:@","];
NSLog("Name: %@", [elements objectAtIndex:1]);
}
**編集: ** 以下の Peter の回答のおかげで、スキャナーが * 文字の後ろで動かなくなっていることがわかりました。ループに次の行を追加しました。
[lineScanner scanCharactersFromSet:[NSCharacterSet characterSetWithCharactersInString:@"*"] intoString:NULL];
そして今、それは正常に機能しています。