0

我的本地资源包中有三个 HTML 文件。我需要将其显示为读者。所以我使用网络视图来显示使用以下代码,

- (void)viewDidLoad
{
     [super viewDidLoad];
     totalArray=[[NSMutableArray alloc]init];
     [totalArray addObject:@"file1"];
[totalArray addObject:@"file2"];
[totalArray addObject:@"file3"];
    NSLog(@"totalArray count:%d",[totalArray count]);

    for (int i=0;i<3;i++)
{
    NSLog(@"i count:%d",i);

   NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
       NSURL *bundleBaseURL = [NSURL fileURLWithPath: bundlePath];
       NSLog(@"webview %@", bundlePath);
   NSString *filePath1= [[NSBundle mainBundle] pathForResource:[totalArray objectAtIndex:i] ofType:@"html"];
       NSLog(@"filePath1:%@",filePath1);
       [htmlView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:filePath1]]];
    }
}

总计数为 3,当前索引计数和文件路径。但它仍然只显示我的第一个 html 文件。我的另外两个文件丢失了。这里可能是什么问题?请帮助我。感谢您。

4

2 回答 2

0

对于本地文件 url,您必须fileURLWithPath:使用NSURL. [[NSBundle mainBundle] URLForResource: withExtension:]此外,您可以使用方法从捆绑包中获取文件 url 。此外,我认为在循环中加载 url 不是一个好主意,您应该尝试其他方法,例如在按钮操作上加载 url。祝你好运!

于 2013-04-18T05:46:07.987 回答
0

您需要等到文件加载完毕,循环不是好主意,相反,您可以使用下面的代码实现相同的目的。使用 fileURLWithPath 加载本地文件。

- (void)viewDidLoad
{
    [super viewDidLoad];
    count = 0;
    totalArray=[[NSMutableArray alloc]init];
    [totalArray addObject:@"file1"];
    [totalArray addObject:@"file2"];
    [totalArray addObject:@"file3"];      
    [_htmlView setDelegate:self];
    NSString *filePath1= [[NSBundle mainBundle] pathForResource:[totalArray objectAtIndex:count] ofType:@"html"];
    NSURL *url = [NSURL fileURLWithPath:filePath1];
    [_htmlView loadRequest:[NSURLRequest requestWithURL:url]];

}

- (void)webViewDidFinishLoad:(UIWebView *)webView{
    count++;
    if (count < 3) {

        NSString *filePath1= [[NSBundle mainBundle] pathForResource:[totalArray objectAtIndex:count]
                                                             ofType:@"html"];
        NSLog(@"filePath1:%@",filePath1);
        NSURL *url = [NSURL fileURLWithPath:filePath1];
        [_htmlView loadRequest:[NSURLRequest requestWithURL:url]];
    }

}
于 2013-04-18T06:23:02.383 回答