Ios 在uiwebview中加载URL

Ios 在uiwebview中加载URL,ios,uiwebview,Ios,Uiwebview,我打开一个UIwebview,从其中一个站点我得到一些URL,然后我将这些URL保存在一个数组中,现在我想在webview中以一定的时间间隔逐个打开这些URL。我试过运行for循环并加载每个URL,但是,它并没有操作每个URL,在循环完成后,它只打开循环中的最后一个URL。 以下是我的循环代码: for(int z = 0; z<[FinalUrlArray count]; z++){ sleep(20.0); NSLog(@"URLs are %@", [FinalUr

我打开一个UIwebview,从其中一个站点我得到一些URL,然后我将这些URL保存在一个数组中,现在我想在webview中以一定的时间间隔逐个打开这些URL。我试过运行for循环并加载每个URL,但是,它并没有操作每个URL,在循环完成后,它只打开循环中的最后一个URL。 以下是我的循环代码:

for(int z = 0; z<[FinalUrlArray count];  z++){
    sleep(20.0);
    NSLog(@"URLs are %@", [FinalUrlArray objectAtIndex:z]);
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[FinalUrlArray objectAtIndex:z]]]];

}

for(int z=0;z是否从类似
ViewDidLoad
的方法之一调用此循环

请记住,在绘制屏幕之前,应用程序将处理整个循环,因此UIWebView只能显示最后一个URL。计时器需要在屏幕绘制生命周期之外完全运行

如果您使用一些JavaScript创建一个HTML页面,并让它遍历URL数组的内容,将它们加载到一个完整的页面iframe中,会怎么样

编辑


您的应用程序需要存储当前URL的索引,您显示的方式与存储
finaluraray
的方式相同。使用从按钮的
TouchUpInside
事件中调用的方法加载第一个URL,然后按照@user1213334的回答中的建议启动计时器以再次调用该方法n间隔后。每次都需要增加方法中的索引,直到到达末尾。请确保每次调用该方法都会为下一次加载启动一个新计时器,除非到达末尾。

我认为您的问题是由于以下原因之一:

1) 您试图加载这些URL的速度过快

2) 睡眠功能冻结所有应用程序。用任务调度代替它怎么样

已更新

要计划一项任务,您可以使用以下方法:

NSTimer *timer;
if (!myTimer) {
       myTimer = [NSTimer scheduledTimerWithTimeInterval:20
                              target:self selector:@selector(doTimer:)
                              userInfo:nil
                              repeats:YES];
   }
其中“doTimer:”是一个函数:

- (void)doTimer:(NSTimer *)timer
要安排大量任务,您还可以尝试以循环增加的不同间隔安排任务。它允许设置两个任务开始之间的20秒间隔。
如果您需要实现与您编写的代码相同的代码而不做任何更改,那么我建议您编写“repeats:NO”,并在前一个任务的末尾安排另一个任务。它允许在一个任务结束和另一个任务开始之间间隔20秒。

我们有一个按钮,按下该按钮,我运行这个循环并从数组中获取URL。那么,代码中的哪些变化可以使它工作,计时器呢?在哪里可以使用该计时器,以便在新URL开始加载之前加载整个页面。我无法使用HTML页面和javascript,因为我正在进行加载时间计算和其他一些事情,因此我使用的是webview。@好的,我已经添加了一些建议,但如果您仍然卡住,您可能需要添加更多的代码。嘿,Dave,我已经用按钮按下功能编辑了我的问题,并完成了编辑。请注意,button press是一个事件处理程序,假定它将webview中的URL从数组加载到webview。请帮助。@Alok在正确完成任何URL加载之前,您的循环总是要完成的。我建议您先在按下的
按钮中加载第一个URL,然后在
webViewDidFinishLoad
中启动计时器等待,然后再加载下一个URL
webViewDidFinishLoad
可能应该在启动计时器之前检查它是否加载了最后一个URL。您不应该使用
sleep
作为计时器,请按照另一个问题中的建议使用适当的
NSTimer
类。URL不应该快速加载,这就是我使用sleep的原因。我不知道它是否仍能快速加载URL。在xcode中安排tast!你能帮我举个例子吗?我编辑了我的帖子来帮助你。但我不认为任务调度比睡眠功能好多少,我会尝试一下,然后返回美国。非常感谢。:)
- (void)doTimer:(NSTimer *)timer