我有以下代码,允许我每次加载一个设置的URL,放在我的viewDidLoad方法中:
NSString *urlAddress = @"http://google.com";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[_webView loadRequest:requestObj];
现在,用户当然可以从这里转到任何网页,如果用户决定关闭我希望他们能够返回的视图。
现在我通过阅读各种论坛和搜索来获得此代码:
再次查看viewDidLoad - 现在看起来像这样:
NSURLRequest *currentRequest = [_webView request];
NSURL *currentURL = [currentRequest URL];
if(currentURL != nil)
{
NSString *urlAddress = currentRequest;
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[_webView loadRequest:requestObj];
}
else {
NSString *urlAddress = @"http://google.com";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[_webView loadRequest:requestObj];
}
在我的viewDidUnLoad中我有这个:
-(void)viewDidUnload {
NSURLRequest *currentRequest = [_webView request];
NSURL *currentURL = [currentRequest URL];
NSLog(@"Current URL is %@", currentURL.absoluteString);
[NSURLConnection connectionWithRequest:currentRequest delegate:self];
}
a)我是否正确地实现了这一目标?
b)我在这一行上创建了一个警告:`NSString * urlAddress = currentRequest; 这是:
使用类型为“NSURLRequest * __ strong”的表达式初始化“NSString * __ strong”的指针类型不兼容
感谢任何帮助: - )
谢谢: - )
`
答案 0 :(得分:2)
NSString *urlAddress = currentRequest;
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[_webView loadRequest:requestObj];
可能只是
[_webView loadRequest:currentRequest];
您可能想尝试在用户解除视图/视图控制器时不卸载视图/视图控制器,然后在用户将其恢复时不会有时间延迟。 (也许你可以改为隐藏而不是卸载它,例如当用户解散它时,或者将它发送到导航控制器堆栈的后面,假设你有一个作为根视图控制器)。
P.S。 您的警告是因为您尝试将NSURLRequest对象分配给NSString对象。