Objective-C + WKWebkit 无法识别的选择器

Posted

技术标签:

【中文标题】Objective-C + WKWebkit 无法识别的选择器【英文标题】:Objective-C + WKWebkit Unrecognized Selector 【发布时间】:2018-06-13 11:03:29 【问题描述】:

作为一个整体,我对 Objective-C/ios Dev 还是很陌生,对此我感到很灰心。我似乎无法让 WKWebkit 为我的生活工作。

经过广泛的 Google 搜索后,我终于整理了一些可以编译的代码 - buuuut 应用程序崩溃了。

WebView.h

#import <UIKit/UIKit.h>
#import <Webkit/Webkit.h>
#import <objc/runtime.h>

@interface WebViewController: UIViewController <WKUIDelegate>;
@property (nonatomic, strong) WKWebView *webView
@end

WebView.m

@implementation WebViewController
-(void) viewDidLoad 
    [super viewDidLoad];
    if (NSClassFromString(@"WKWebView")) 
        _webView = [[WKWebView alloc] initWithFrame:[[self view] bounds]];
     else 
        _webView = [[UIWebView alloc] initWithFrame:[[self view] bounds]];
    
    NSString *urlString = @"http://www.google.com";
    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
    [_webView loadRequest:urlRequest];

@end

我也确实在情节提要的自定义类下将类设置为 WebViewController。

这是我不断收到的错误消息:

[WebViewController superview]: unrecognized selector sent to instance 0x7fdbb570e050

任何线索我做错了什么?我仍然太陌生,无法自己发现任何明显的错误。非常感谢!

【问题讨论】:

你试过为错误设置断点吗?我可能会提供一些额外的背景信息。 ***.com/questions/7156090 我没有 - 谢谢你的建议! 【参考方案1】:

错误说明您的类WebViewController 没有方法superview。不幸的是,我在您发布的代码中看不到问题,并认为它在其他地方。虽然代码本身还是很不稳定的。

您可以使用exception breakpoints,它应该向您显示导致此问题的确切行并添加该信息。

一般来说,我可以假设您以某种方式使用您的课程来代替UIViewUIViewController 不是 UIView 的子类,因此它没有方法 superview

【讨论】:

以上是关于Objective-C + WKWebkit 无法识别的选择器的主要内容,如果未能解决你的问题,请参考以下文章

WKWebKit基础

用于 JavaScript 的 UIWebView 或 WKWebkit?

WKWebkit使用

固定元素在 WKWebkit 上移动

Xcode 6 + iOS 8 SDK 但部署在 iOS 7 (UIWebKit & WKWebKit)

SecurityError (DOM Exception 18): 操作不安全 WKWebkit iOS 10