在iOS应用程序中获取fgets上的EXC_BAD_访问权限

在iOS应用程序中获取fgets上的EXC_BAD_访问权限,ios,objective-c,c,Ios,Objective C,C,我试图逐行读取一个文件,但当调用我的函数时,它会在执行EXC_BAD_访问时崩溃(fgets行)。我已将文本文件添加到Xcode项目中 这就是所讨论的功能: NSMutableArray *arrayadd(NSString *date){ static const char filename[] = "someText.txt"; FILE *file = fopen ( filename, "r" ); NSString *tmpline; NSArray *

我试图逐行读取一个文件,但当调用我的函数时,它会在执行EXC_BAD_访问时崩溃(fgets行)。我已将文本文件添加到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;
}
NSMutableArray*arrayadd(NSString*date){
静态常量字符文件名[]=“someText.txt”;
FILE*FILE=fopen(文件名,“r”);
NSString*tmpline;
NSArray*块;
NSMutableArray*listtoAdd=[[NSMutableArray alloc]init];
字符行[512];
int a=0;
while(fgets(行、行大小、文件)!=NULL){
tmpline=[NSString stringWithFormat:@“%s”,第行];
chunks=[tPline componentsSeparatedByString:@“-”];

如果((a>0&&a,
fgets
本身看起来没有问题,但我注意到您没有检查
fopen
的返回值,这可能意味着
文件
设置为
NULL

您放置文件的位置可能不是运行代码的环境所在的位置