0

viewDidLoadメソッドに配置された、設定されたURLを毎回ロードできる次のコードがあります。

NSString *urlAddress =  @"http://google.com";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[_webView loadRequest:requestObj];

これで、ユーザーはもちろんここから任意のWebページにアクセスできます。ユーザーがビューを閉じることにした場合は、ビューに戻ることができるようにしたいと思います。

これで、さまざまなフォーラムや検索を読んで、このコードを入手できました。

ここでも、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'を初期化する互換性のないポインター型

どんな助けでもありがたいです:-)

ありがとうございました:-)

PS私はこの質問でこの問題を始めましたが、新しい問題の価値があると感じたので、同じことを考えていない場合はご容赦ください。

`

4

1 に答える 1

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

だけかもしれません

[_webView loadRequest:currentRequest];

ユーザーが閉じたときにビュー/ビューコントローラーをアンロードしないことを試してみると、ユーザーが元に戻したときに時間の遅延が発生しなくなります。(たとえば、ユーザーがそれを閉じたときにアンロードする代わりに非表示にするか、ルートビューコントローラーとして1つあると仮定して、ナビゲーションコントローラースタックの後ろに送信することもできます)。

PSあなたの警告は、NSURLRequestオブジェクトをNSStringオブジェクトに割り当てようとしているためです。

于 2012-05-23T16:06:01.630 に答える