我有这些行来读取文件并将其行拆分为数组项:
- (NSArray *)lerLinhasArquivoBundle:(NSString *)nomeArquivo {
NSString *arquivo = nil;
NSError *error = nil;
NSString *bd = [[NSBundle mainBundle] pathForResource:nomeArquivo ofType:@"csv"];
if (bd) {
arquivo = [NSString stringWithContentsOfFile:bd
encoding:NSUTF8StringEncoding
error:&error];
}
if (error || !bd) {
return nil;
}
return [arquivo componentsSeparatedByString: @"\r\n"];
}
问题是这只适用于有" windows" CR / LF结尾并且对于具有UNIX行结尾的文件将失败。当文件是UNIX文件时,我只得到一个大项目。
好的,我可以破解方法来测试\r\n
和\n
并使用那个给我更多项目的方法,但这似乎是一个蹩脚的解决方案。
有没有办法知道正在使用哪些行结尾,并在返回行上使用该信息将元素拆分为数组?
答案 0 :(得分:3)
使用[NSCharacterSet newlineCharacterSet]
而不是显式字符串:
return [arquivo componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];