Почему моя строка NSString не читает мой файл .txt? - PullRequest
1 голос
/ 01 декабря 2011

У меня есть следующий код для чтения файла .txt и помещения его в строку для использования в NSScanner.

    NSString *Period1String = [[NSBundle mainBundle] pathForResource: @"Period1String" ofType: @"txt"];
    NSString *Period2String = [[NSBundle mainBundle] pathForResource: @"Period2String" ofType: @"txt"];
    NSString *Period3String = [[NSBundle mainBundle] pathForResource: @"Period3String" ofType: @"txt"];
    NSString *Period4String = [[NSBundle mainBundle] pathForResource: @"Period4String" ofType: @"txt"];
    NSString *Period5String = [[NSBundle mainBundle] pathForResource: @"Period5String" ofType: @"txt"];

    NSURL *requestTimetableURL = [NSURL URLWithString:@"http://www.dhsb.org/index.phtml?d=201435"];
    NSLog(@"Loaded Timetable");
    NSError *loaderror;
    NSString *page = [NSString stringWithContentsOfURL:requestTimetableURL 
                                              encoding:NSASCIIStringEncoding
                                                 error:&loaderror];

    [webView loadHTMLString:page baseURL:requestTimetableURL];

    NSString* Period1;

    NSScanner *htmlScanner =  [NSScanner scannerWithString:page];

    [htmlScanner scanUpToString:Period1String intoString:NULL];
    [htmlScanner scanString:Period1String intoString:NULL];
    [htmlScanner scanUpToString:@"</FONT>" intoString:&Period1];

    period1label.text= Period1;

    NSLog(@"Collected Period 1 Data: %@", Period1);

    NSScanner *htmlScanner2 =  [NSScanner scannerWithString:page];

    NSString* Period2;

    [htmlScanner2 scanUpToString:Period2String intoString:NULL];
    [htmlScanner2 scanString:Period2String intoString:NULL];
    [htmlScanner2 scanUpToString:@"</FONT>" intoString:&Period2];

    period2label.text= Period2;

    NSLog(@"Collected Period 2 Data: %@", Period2);

    NSScanner *htmlScanner3 =  [NSScanner scannerWithString:page];

    NSString* Period3;

    [htmlScanner3 scanUpToString:Period3String intoString:NULL];
    [htmlScanner3 scanString:Period3String intoString:NULL];
    [htmlScanner3 scanUpToString:@"</FONT>" intoString:&Period3];

    period3label.text= Period3;

    NSLog(@"Collected Period 3 Data: %@", Period3);

    NSScanner *htmlScanner4 =  [NSScanner scannerWithString:page];

    NSString* Period4;

    [htmlScanner4 scanUpToString:Period4String intoString:NULL];
    [htmlScanner4 scanString:Period4String intoString:NULL];
    [htmlScanner4 scanUpToString:@"</FONT>" intoString:&Period4];

    period4label.text= Period4;

    NSLog(@"Collected Period 4 Data: %@", Period4);

    NSScanner *htmlScanner5 =  [NSScanner scannerWithString:page];

    NSString* Period5;

    [htmlScanner5 scanUpToString:Period5String intoString:NULL];
    [htmlScanner5 scanString:Period5String intoString:NULL];
    [htmlScanner5 scanUpToString:@"</FONT>" intoString:&Period5];

    period5label.text = Period5;

    NSLog(@"Collected Period 5 Data: %@", Period5);

Но, когда кнопка нажата, чтобы все это произошло, все строки (ноль). Каждый текстовый файл должно работать полностью, как они работали для других частей моего приложения.

Есть ли лучший способ, которым я должен делать это, или я могу улучшить этот текущий метод, чтобы получить результаты, которые я ищу?

Спасибо

1 Ответ

16 голосов
/ 01 декабря 2011
 NSString *Period1String = [[NSBundle mainBundle] pathForResource: @"Period1String" ofType: @"txt"];

Это установка Period1String для пути к Period1String.txt, а не к содержимому Period1String.txt.

Это должно быть

 NSString *Period1String = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource: @"Period1String" ofType: @"txt"] usedEncoding:nil error:nil];

Подставьте значения для кодирования и ошибки в зависимости от ситуации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...