2012-10-04 59 views
-1

此位是麻烦....预期表达否则,如果错误

#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 

我似乎无法找出是什么原因造成否则,如果有问题。我把这个垃圾从这里搜索出来,一遍又一遍地检查我的代码,但我似乎无法弄清楚这一点!

请大家帮忙。

+0

您正在观察的问题是什么?看起来你的代码在发布时并不完整。你是否收到编译器错误? –

+0

我似乎无法弄清楚你在做什么。完全一样。 – Bergasms

+0

这段代码没有意义:'if(...)(UIWebView)else if ...'。你想做什么? –

回答

1

'我正在尝试使用uiwebview来创建一个web应用程序。如果你知道更好的方法,请告诉我!

[theWebView loadRequest:[NSURLRequest requestWithURL:theURL]]; 
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发布使你的代码的工作方法。

2

您之前询问过同样的问题,其中I answered。我重复下面的答案的相关部分。如果有些事情没有意义,请在下面留言。


我猜你正试图加载一个HTML页面在UIWebView?您显然需要一个IBOutlet为您的UIWebView。 (如果你不熟悉IBOutlet,检查出的苹果教程Your First iOS App

不管怎样,在我的例子下面,我会假设你IBOutlet被称为webview,因此我会建议摆脱的NSOperationQueueNSUrlConnection,只是有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或查看http://developer.apple.com的精彩资源。


更新:

顺便说一句,如果你坚持要用NSOperationQueueNSUrlConnection,你仍然需要为您的WebView的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要简单得多,但如果你真的想这样做,这样一来,在这里你去。

+2

+1为您耐心等待这张海报。 – rdelmar