在我的网络浏览器中,我试图用从 NSURLConnection
获得的 NSData
加载一个 UIWebView
。当我尝试将它加载到 UIWebView
时,它显示的是 HTML 纯文本而不是网站。
这是我的代码:
在 viewDidLoad:
NSURLRequest *request = [NSURLRequest requestWithURL: [NSURL URLWithString:@"http://www.msn.com"]];
[NSURLConnection connectionWithRequest: request delegate:self];
稍后在代码中:
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
webdata = [NSMutableData dataWithData: data];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[webview loadData:webdata MIMEType: @"text/html" textEncodingName: @"UTF-8" baseURL:nil];
}
最佳答案
您没有附加收到的数据。使用这段代码
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
if (webdata == nil) {
webdata = [[NSMutableData alloc] init];
}
[webdata appendData:data];
}
根据您的数据长度,此方法可能会被调用一次或多次。因此,不要将新数据分配给您的 ivar,而是将您的数据附加到它,以便您获得完整的响应,而不是收到的最后一个数据包。
-------------------------------------------- ---------------------------------------------- ----------------------------------
已更新
或者像这样使用。
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
webdata = [[NSMutableData alloc] init];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
[webdata appendData:data];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
[mWebView loadData:webdata MIMEType: @"text/html" textEncodingName: @"UTF-8" baseURL:nil];
}
关于iphone - 将 NSData 加载到 UIWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9475768/