这一点很麻烦......
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
//1
NSString *urlString = @"http://zaphod_beeblebrox.pythonanywhere.com/";
//2
NSURL *url = [NSURL URLWithString:urlString];
//3
NSURLRequest *request = [NSURLRequest requestWithURL:url];
//4
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
//5
[NSURLConnection sendAsynchronousRequest:request queue:queue
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if ([data length] > 0 && error == nil) (UIWebView)
else if ((error != nil) NSLog(@"Error: %@", error))}];
}@end
我似乎无法弄清楚如果有问题会导致其他原因。我已经用Google搜索了这个垃圾,并一遍又一遍地检查我的代码,但我似乎无法弄明白这一点!
请帮忙。
答案 0 :(得分:2)
之前你问了同样的问题,I answered。我重复下面答案的相关部分。如果有些事情没有意义,请在下面留言。
我猜你正试图在UIWebView
中加载一个html页面?您显然需要IBOutlet
UIWebView
。 (如果您不熟悉IBOutlet
,请查看Apple教程Your First iOS App。)
无论如何,在下面的示例中,我将假设您的IBOutlet
被称为webview
,因此我可能会建议删除NSOperationQueue
和NSUrlConnection
并让UIWebView
为你加载html:
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *urlString = @"http://zaphod_beeblebrox.pythonanywhere.com/";
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[self.webview loadRequest:request];
}
可能值得通过一些iPhone编程教程(只是谷歌它,你会获得大量的点击),或者看看Apple App Programming Guide或查看{{3}的精彩资源}。
<强>更新强>
顺便说一下,如果您坚持使用NSOperationQueue
和NSUrlConnection
,那么您的网络视图仍然需要IBOutlet
。但修改后的代码看起来像:
NSString *urlString = @"http://zaphod_beeblebrox.pythonanywhere.com/";
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:request
queue:queue
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if ([data length] > 0 && error == nil)
{
NSString *htmlString = [NSString stringWithUTF8String:data.bytes];
[self.webview loadHTMLString:htmlString baseURL:url];
}
else if (error != nil)
{
NSLog(@"Error: %@", error);
}
else
{
NSLog(@"No data returned");
}
}];
我认为loadRequest
要简单得多,但如果你真的想这样做,那就去吧。
答案 1 :(得分:1)
'我正在尝试使用uiwebview来启动网络应用。如果你知道更好的方法,请告诉我!'
[theWebView loadRequest:[NSURLRequest requestWithURL:theURL]];
答案 2 :(得分:1)
您有3种不同的错误。首先“(UIWebView)”并不意味着什么,其次,如果你有一个声明,那确实意味着它需要一个分号。第三,在NSLog之后应该有一个分号(@“错误:%@”,错误)。最好将一些代码放在单独的行上以便于阅读 - 它应该如下所示:
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if ([data length] > 0 && error == nil)
;//a valid expression here with a semicolon at the end
else if (error != nil)
NSLog(@"Error: %@", error);
}];
话虽如此,您应该使用@Rob发布的方法来使您的代码正常工作。