Objective-C + WKWebkit Нераспознанный селектор - PullRequest
0 голосов
/ 13 июня 2018

Я довольно новичок в Objective-C / iOS Dev в целом и схожу с ума по этому поводу.Я не могу заставить WKWebkit работать на меня.

После обширных поисков в Google я, наконец, собрал некоторый код, который компилируется - но приложение вылетает.

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

Любая подсказка, что я делаю неправильно?Я все еще слишком незнаком, чтобы поймать какие-либо очевидные ошибки самостоятельно.Большое вам спасибо!

1 Ответ

0 голосов
/ 13 июня 2018

Ошибка говорит о том, что у вашего класса WebViewController нет метода superview.К сожалению, я не вижу проблемы в размещенном вами коде и предполагаю, что это где-то еще.Хотя сам код все еще очень ненадежен.

Вы можете использовать точки останова исключения , которые должны показать вам точную строку, вызывающую это, и добавить эту информацию.

В общем, яМожно предположить, что вы как-то используете свой класс вместо UIView.UIViewController не является подклассом UIView, поэтому у него нет метода superview.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...