在iOS应用中的fgets上获取EXC_BAD_ACCESS

时间:2014-02-02 00:32:04

标签: ios objective-c c

我正在尝试逐行读取文件,但是当我的函数被调用时,它会在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;
}

1 个答案:

答案 0 :(得分:0)

fgets本身看起来没问题,但我注意到您没有检查fopen的返回值,这可能意味着file设置为NULL。< / p>

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