我正在尝试使用Objective-C从外部txt文件(大约180kb)逐一读取行。我在这里找到了这段代码。我的理解是,这段代码会把每一行放在一个元素里吗?使用for..in逐行读取文件
- (IBAction)start:(id)sender; {
NSString *fh = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL];
for (NSArray *line in [fh componentsSeparatedByString:@"\n"]) {
NSLog(@"output= %@",line[5]);
}
}
我试图检查其是否通过打印线,以我的最大输出工作,但什么也没有发生,我究竟做错了什么?
感谢,
更新: 我做了修改建议,并为它投票率FH确实是零。如果我使用包含一段文本文件的字符串(包括几个\ n),它可以正常工作。我检查了文件路径,但这似乎是好的,所以现在的问题是如何来fh =零?
NSString *fh = [NSString stringWithContentsOfFile:@"file:///Users/Mubanga/Documents/Blender/rough2.txt" encoding:NSUTF8StringEncoding error:nil];
if([fh length] == 0) {
NSLog(@"fh=nil");
}
for (NSString *line in [fh componentsSeparatedByString:@"\n"]) {
NSLog(@"output= %@",line);
}
}
首先,验证FH不是零。 –
@MartinR你是对的,fh竟然是零。我怎样才能防止这种情况发生? – Mubanga
您可能也不想使用'fh'作为不包含NSFileHandle的变量的名称。由于它包含一个字符串,我将其命名为'string','str'或'fileContents'或类似的东西。 –