我正在嘗試使用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'或類似的東西。 –