为什么我的NSString不读取.txt文件



我有以下代码来读取。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);

但是,当按钮按下所有这些发生时,它所有的字符串(null)。每个文本文件应该完全工作,因为他们已经为我的应用程序的其他部分工作。

是否有更好的方法我应该这样做,或者我可以改进当前的方法来获得我正在寻找的结果?

谢谢

 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];

将编码和错误替换为合适的值

最新更新