呈现内容后的UIWebView序列化

时间:2013-05-03 11:32:53

标签: ios objective-c uiwebview nskeyedarchiver

我有一个非常大的HTML文档,我需要在我的应用程序中显示。它使用CSS Columns,并水平滚动。我尝试做的是归档UIWebView,它将文档呈现为当前状态,这样我就可以从CoreData中取消归档,并且不必让用户等待几秒钟直到它被渲染。所以在我的UIWebViewDelegate中,我在调用webViewDidFinishLoad时使用以下方法进行序列化(内容是从字符串加载的,而不是从外部源加载的):

[NSKeyedArchiver archivedDataWithRootObject:self.webView];

我检查了多次调用webViewDidFinishLoad,但事实并非如此。这和核心数据保存实际上是有效的,即它确实在下次启动应用程序时正确保存和加载。然而,虽然它保存了UIWebView本身,但似乎内容没有加载到它中,这使得整个过程对我来说有点无用。我对以这种方式保存对象的理解是错误的,还是只是一个实现问题?

非常感谢!

1 个答案:

答案 0 :(得分:0)

我认为你不应该归档UIWebview。相反,您可以使用自定义CSS元素将html文档文件保存在应用程序的文档目录中,并使用以下代码使用文件路径进行渲染。

self.webview.scalesPageToFit=  YES;                        
[self.webview loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:filePath]]];
相关问题