我正在尝试逐行读取文件,但是当我的函数被调用时,它会在while时崩溃(fgets行与EXC_BAD_ACCESS。我已将文本文件添加到Xcode项目。
这是有问题的功能:
NSMutableArray *arrayadd(NSString *date){
static const char filename[] = "someText.txt";
FILE *file = fopen ( filename, "r" );
NSString *tmpline;
NSArray *chunks;
NSMutableArray *listtoAdd = [[NSMutableArray alloc] init];
char line [ 512 ];
int a=0;
while ( fgets ( line, sizeof line, file ) != NULL ){
tmpline = [NSString stringWithFormat:@"%s", line];
chunks = [tmpline componentsSeparatedByString: @" - "];
if ((a>0 && a<8) || [chunks objectAtIndex: 0] == date){
[listtoAdd addObject:[chunks objectAtIndex:1]];
a=a+1;
if (a==8){
break;
}
}
}
return listtoAdd;
}
答案 0 :(得分:0)
fgets
本身看起来没问题,但我注意到您没有检查fopen
的返回值,这可能意味着file
设置为NULL
。< / p>
您放置文件的位置可能而不是环境运行代码的位置。