在mac桌面应用中,我收到“无法识别的选择器发送到实例”错误。
以下是导致错误的行:
My_WebView *mvw = [mWebView LoadHtml];
以下是相关的课程定义:
My_WebView.h
#import <WebKit/WebKit.h>
@interface My_WebView : WebView
{
}
- (My_WebView *) LoadHtml; // initialize the WebView with a page
@end
My_WebView.mm
#import "My_WebView.h"
@implementation My_WebView
- (My_WebView *) LoadHtml
{
NSLog(@"Loading HTML...");
// do stuff...
return self;
}
@end
当我在XCode调试器中运行我的代码并在违规行中断时,我被告知mWebView
是预期类型(My_WebView
)。这排除了许多similar questions I've seen here中确定的问题。
有谁知道我做错了什么?
答案 0 :(得分:0)
我明白了。我很困惑。实例不是正确的类型!
XCode调试器说mWebView
是指向My_WebView
的指针。
mWebView My_WebView * 0x000000010e0884c0
这让我错误地认为My_WebView
也是mWebView
的运行时类型。事实并非如NSLog(@"mWebView: %@", mWebView);
和po mWebView
所示。
mWebView: <WebView: 0x1180ca4c0>
mWebView
实际上只是一个普通的旧Cocoa WebView
。这就是它没有回复LoadHTML
消息的原因。问题解决了。