好的,所以我试图获取webView的当前URL,以便我可以解析它并隔离一个数字..但是变量_webURL没有使用URL设置。 URL没有使用以下内容打印到日志,为什么?:
初始显示的实现:
@synthesize adWebView1;
@synthesize webURL = _webURL;
...
- (void)viewDidLoad
{
[adWebView1 loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.web.org/bannercontroller.php"]]];
_webURL = adWebView1.request.URL.absoluteString;
NSLog(@"The Current URL is", _webURL);
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)viewDidUnload
{
adWebView1 = nil;
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
我将其修改为:
- (void)viewDidLoad
{
[adWebView1 loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.web.org/bannercontroller.php"]]];
NSString *rawURL = [adWebView1 stringByEvaluatingJavaScriptFromString:@"location.href;"];
NSLog(@"Das URL ist", *rawURL);
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
产生以下错误:
无法通过veriadic函数传递接口类型为'NSString'的对象。
答案 0 :(得分:0)
您使用该请求创建webview,但从那里它将不再使用该请求,因此它可能不会更新请求对象。
创建webview时,请求将开始。它不会等到请求完成,因此您可能需要检查请求是否仍在运行。
以后可以使用以下网址获取:
NSString *rawLocationString = [adWebView1 stringByEvaluatingJavaScriptFromString:@"location.href;"];
我不确定它是否已在viewDidLoad
中可用。
顺便说一句:
你不应该致电URL.absoluteString
。虽然它在技术上可行,但它不正确。 absoluteString是一个方法,而不是一个属性,所以你不应该像它那样访问它。