2012-09-15 20 views
-2

我需要在视图控制器中使用多个UIWebView,但在启动应用程序几分钟后,由于LoadRequest而崩溃。如何在单点触控中使用此有形c代码

我发现此代码块hereUIWebiViewDelegate,但我无法成功地将其转换为C#。

-(void)spinlockedWebViewLoad:(NSArray*)arr { 
    NSAutoreleasePool* pool=[[NSAutoreleasePool alloc] init]; 
    UIWebView* webView=(UIWebView*)[arr objectAtIndex:0]; 
    NSURLRequest* request=(NSURLRequest*)[arr objectAtIndex:1]; 
    @synchronized(self) { 
    spinlock=webView; 
    [webView loadRequest:request]; 
    while (spinlock==webView) [NSThread sleepForTimeInterval:0.1]; 
    } 
    [pool drain]; 
} 

-(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { 
    if (spinlock!=webView) { 
    [NSThread detachNewThreadSelector:@selector(spinlockedWebViewLoad:) toTarget:self withObject:[NSArray arrayWithObjects:webView,request,nil]]; 
    return NO; 
    } 
    return YES; 
} 

回答

0

在你的代码也没有必要使用一个(的ObjectiveC式)的委托,只需使用管理活动:

void SpinlockedWebViewLoad (NSObject [] arr) 
{ 
    ... 
    UIWebView webView = (UIWebView) arr [0]; 
    webView.ShouldStartLoad += ShouldStartLoad; 
    ... 
} 

bool ShouldStartLoad (UIWebView webView, NSUrlRequest FileWebRequest, UIWebViewNavigationType navigationType) 
{ 
    ... 
} 
+0

感谢。这很好! –

相关问题