将URL加载到WebView中的问题

use*_*798 1 cocoa objective-c webview sigabrt

我是Xcode的新手.我正在使用Xcode 5.1.1.在OS X 10.9.2下.我想做一个非常简单的Mac应用程序,以了解如何在启动时在WebView中加载URL.在阅读了几个来源(包括来自StackOverflow的问题)之后,我尝试了大约10种不同的方法并完成了相同的结果 - 在Build&Run之后,屏幕上没有窗口.错误消息是:

  • 信号SIGABRT,argc = 3(main())
  • 在控制台区域:*由于未捕获的异常'NSInvalidUnarchiveOperationException'终止应用程序,原因:'* - [NSKeyedUnarchiver decodeObjectForKey:]:无法解码类的对象(WebView)'

  • libc ++ abi.dylib:以NSException类型的未捕获异常终止

我做了什么:

在IB中,我创建了WebView窗口并创建了一个插座zzz(我试图从AppDelegate按住Ctrl键拖动到WebView,反之亦然).所以这是我完成的代码:

//  AppDelegate.h
#import <Cocoa/Cocoa.h>
#import <WebKit/WebKit.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (assign) IBOutlet NSWindow *window;
@property (retain, nonatomic) IBOutlet WebView *zzz;
@end

//  AppDelegate.m
#import "AppDelegate.h"
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
  [self.zzz setMainFrameURL:@"http://www.google.com/"];
// I tried to put this code into awakeFromNib procedure too
}
@end
Run Code Online (Sandbox Code Playgroud)

我尝试使用applicationDidFinishLaunching/awakeFromNib中的代码,如下所示:

NSString *urlAddress = @"http://www.google.com/";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[[self.zzz mainFrame] loadRequest:requestObj];
Run Code Online (Sandbox Code Playgroud)

但我明白这与[self.zzz setMainFrameURL:@" http://www.google.com/ "]相同;

同样的错误!Strrange!怎么了?

谢谢.

Goo*_*33d 7

您尚未将其添加Webkit Framework到项目中.转到Project -> Target -> Build Phases并在部分Link Binary with Libraries添加Webkit framework.