使用Cocoa保存Web存档

使用Cocoa保存Web存档,cocoa,macos,safari,webkit,webarchive,Cocoa,Macos,Safari,Webkit,Webarchive,我想用Cocoa以编程方式将网页保存到硬盘上,作为类似Safari的webarchive 我昨天搜索了苹果的所有示例程序,但我只在苹果开发者页面上找到了webarchive类的类引用。我在webarchive类上玩了一点,不幸的是,我的解决方案没有提供任何输出 NSURL *url = [NSURL URLWithString:@"http://www.google.de"]; NSURLRequest *urlRequest = (NSMutableURLRequest*)[NSURLRequ

我想用Cocoa以编程方式将网页保存到硬盘上,作为类似Safari的webarchive

我昨天搜索了苹果的所有示例程序,但我只在苹果开发者页面上找到了webarchive类的类引用。我在webarchive类上玩了一点,不幸的是,我的解决方案没有提供任何输出

NSURL *url = [NSURL URLWithString:@"http://www.google.de"];
NSURLRequest *urlRequest = (NSMutableURLRequest*)[NSURLRequest requestWithURL:url
                                                                  cachePolicy:NSURLRequestUseProtocolCachePolicy 
                                                              timeoutInterval:30.0];
NSData *urlData;
NSURLResponse *response;
NSError *error;
urlData = [NSURLConnection sendSynchronousRequest:urlRequest
                                returningResponse:&response
                                            error:&error];
WebArchive *wa = [[WebArchive alloc] initWithData:urlData];
NSData *waData = [wa data];
NSLog(@"%@", [[NSString alloc] initWithData:waData encoding:NSUTF8StringEncoding]);
我希望有人能为我的问题发布解决方案

提前谢谢


Michael

您需要实例化一个WebView并加载它,但这非常简单:

[[[webView mainFrame] dataSource] webArchive]

我已经实例化了一个WebView,但我不希望WebView此时加载webarchive。我想下载一个网站作为webarchive,并将其保存在硬盘上以备以后使用。之后,我将加载此Web存档,然后在Web视图中显示它。

Web视图将下载该页面,然后您可以保存它。我不确定您不希望发生什么。是的,您不需要将WebView放在窗口的屏幕上,您可以通过编程方式使用它来创建web存档,然后将其丢弃。打印整个web存档将很难垃圾邮件发送您的运行日志。我建议在这里使用
%p
(指针)。“你的解决方案没有任何输出”是什么意思?日志消息是否未显示在运行日志中?如果是这种情况,则此代码没有运行,您需要在开始尝试查找其中的问题之前将其连接到某个位置。