2012-10-04 55 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