gpt4 book ai didi

ios - UIWebView 仅在添加到 View 时有效

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:27:05 26 4
gpt4 key购买 nike

我想使用 UIWebView 对网页进行一些操作。我已经将所有必要的 UIWebView 代码添加到 NSObject 类中,但是从未调用过 UIWebView 委托(delegate)方法,而且它似乎什么也没做全部。

如果我将完全相同的代码传输到 UIViewController 类并将 UIWebView 添加到 View ,它工作正常。

那么,如果 UIWebView 没有添加到 View 中,它还能工作吗?如何使用零帧添加它或从 NSObject 类中隐藏它?

我真的减少了我的代码(如下),它应该可以正常工作但没有。

MyWebViewHelper.m

@interface MyWebViewHelper () <UIWebViewDelegate>
@property (strong) UIWebView *webview;
@end

- (instancetype)initWithURLString:(NSString *)urlString username:(NSString *)username password:(NSString *)password
{
if ((self = [super init])) {

}
return self;
}

- (void)readPage
{
NSLog(@"%s", __PRETTY_FUNCTION__);

self.webview=[[UIWebView alloc] init];
NSURL *url = [NSURL URLWithString:@"https://www.google.com"];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
_webview.delegate = self;
[_webview loadRequest:requestObj];
}

#pragma mark - UIWebView Delegates

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSLog(@"Should start loading: %@", [[request URL] absoluteString]);

NSLog(@"Headers: %@",[request allHTTPHeaderFields]);
NSLog(@"Data: %@", [[NSString alloc] initWithData:request.HTTPBody encoding:NSASCIIStringEncoding]);
NSLog(@"Method: %@",[request HTTPMethod]);

return YES;
}

- (void)webViewDidStartLoad:(UIWebView *)webView
{
NSLog(@"%s", __PRETTY_FUNCTION__);
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"%s", __PRETTY_FUNCTION__);
}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
NSLog(@"%s", __PRETTY_FUNCTION__);
NSLog(@"error:%@", error);
}

最佳答案

我已经找到了解决办法。 UIWebView 实际上可以在不添加到 View 的情况下工作。出于某种原因,我运行 UIWebViewNSObject 类被 ARC 释放。我只是在尝试让类将 UIWebView 添加到 View 时才发现这一点,它一直在崩溃,但不会给我任何理由或断点。

我最终想出了启用僵尸对象的方法,它提示向已释放的实例发送消息。

无论如何,修复结果是向我的类添加一个 strong 属性引用以阻止它像这样被释放:

@property (strong, nonatomic) MyWebViewHelper *myWebHelper;

关于ios - UIWebView 仅在添加到 View 时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26873038/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com