繁体   English   中英

iPhone上的NSOperation,同步NSURLConnection和UIWebView

[英]NSOperation, Synchronous NSURLConnection, & UIWebView on iPhone

我有一个奇怪的问题。 这是设置:

  • 我有一个NSOperationQueue,我向其中添加了NSOperation子类对象。 这些使用NSURLConnection sendSynchronousRequest方法进行联网。 据我了解,它们是完全异步的,因为它们是NSOperation,每个都有各自的线程。
  • 如果我在没有任何后台联网操作的情况下启动我的应用程序,则将URL加载到UIWebView中就可以了。
  • 如果启动我的应用程序并运行一些后台联网操作,则将URL加载到UIWebView中会导致以下错误:

    错误域= WebKitErrorDomain代码= 102 UserInfo = 0x1996d60“帧加载中断”

并且任何随后尝试加载UIWebView的尝试都会失败,并显示相同的错误。

我需要注意UIWebView和NSURLConnection之间是否存在一些奇怪的交互? 我的下一步是用完全异步的NSOperation替换同步调用,但这是一个怪异的错误,我以为我会问专家。

我已将错误隔离到NSURLConnection sendSynchronousRequest方法。 如果我从NSOperation调用此方法,则UIWebView会严重中断。

102错误与WebKit中的某些“策略更改”错误有关,该错误在任何地方都很少/没有记录。

有人知道吗 任何帮助是极大的赞赏!

编辑:看起来这是某种cookie问题。 如果Web服务器通过后台HTTP请求设置Cookie,为什么UIWebView无法加载的任何原因?

好,我知道了。

显然,UIWebView不喜欢使用全局cookie存储的URLConnection HTTPRequests(甚至ASIHTTPRequest)。 因此,现在我的应用程序抛出一个简单的HTML页面,以允许由UIWebView设置cookie,并且从此“下游”的每个人显然都很高兴,无论是通过NSOperation的API请求还是UIWebViews。

万岁!

我不清楚您要在这里完成什么,UIWebView将自行异步加载NSRequest。 要检查的一件事是通过使用NSOperation内部的performSelectorOnMainThread:方法之一,确保与UIWebView在代码中进行的任何交互都在主线程上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM