0

我有以下代码,允许我每次加载一个设置的 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];
}

在我看来DidUnLoad 我有这个:

-(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”的不兼容指针类型

任何帮助表示赞赏:-)

谢谢:-)

PS我从这个问题开始这个问题,但觉得值得一个新的,所以如果你不这么认为,请原谅我。

`

4

1 回答 1

2
NSString *urlAddress = currentRequest;
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[_webView loadRequest:requestObj];

可能只是

[_webView loadRequest:currentRequest];

您可能想尝试在用户关闭视图/视图控制器时不卸载它,然后用户将其带回时不会有时间延迟。(也许您可以将其隐藏而不是卸载它,例如当用户关闭它时,或者将其发送到导航控制器堆栈的后面,假设您有一个作为根视图控制器)。

PS您的警告是因为您试图将 NSURLRequest 对象分配给 NSString 对象。

于 2012-05-23T16:06:01.630 回答