Ios 如果出现错误,则需要表达式else

Ios 如果出现错误,则需要表达式else,ios,xcode,if-statement,Ios,Xcode,If Statement,这一点很麻烦 #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //1 NSString *urlString = @"http://zaphod_beeblebrox.pythonanywhere.com/"; //2 NSURL *url = [NSURL URLWit

这一点很麻烦

#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

我似乎不知道是什么导致了其他的问题。我已经用谷歌搜索出了这些废话,并且一遍又一遍地检查了我的代码,但我似乎无法弄明白这一点


请帮助。

“我正在尝试使用uiwebview启动web应用程序。如果你知道更好的办法,请告诉我

[theWebView loadRequest:[NSURLRequest requestWithURL:theURL]];

您有3个不同的错误。第一个UIWebView没有任何意义,第二个,如果你有一个语句,它确实意味着什么,它后面需要一个分号。第三,后面应该有分号NSLog@Error:%@,错误。为了便于阅读,最好将一些代码放在单独的行中-它应该如下所示:

[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发布的方法来让你的代码工作。

你以前也问过同样的问题,这是为什么。我重复下面回答的相关部分。如果有什么不合理的地方,请在下面留下评论

我猜你是想在UIWebView中加载html页面?显然,您的UIWebView需要一个IBOutlet。如果您不熟悉IBOutlet,请查看Apple教程

无论如何,在下面的示例中,我将假设您的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编程教程可能是值得的,只要用谷歌搜索一下,你也会得到大量点击,或者看看苹果,或者看看网站上的精彩资源

更新:

顺便说一下,如果您坚持使用NSOperationQueue和NSUrlConnection,那么您的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要简单得多,但如果您真的想这样做,那就来吧。

您观察到的问题是什么?看来你的代码是不完整的张贴。你有编译器错误吗?我好像不知道你在做什么。这段代码毫无意义:if…UIWebView else if…。你想做什么?否则,如果一直得到一个预期的表达式错误,我没有额外的分号或任何其他大多数人都有这个错误出现时。我还没有遇到任何编译器错误。我正在尝试使用uiwebview启动web应用程序。如果你知道更好的方法,请告诉我!这里是我获得大部分代码的地方:[link]为什么要使用NSURLConnection?在我下面的回答中,我向您展示了一种更简单的方法,即使用loadRequest。但是如果你真的想这样做的话,我也会告诉你如何修复这个代码。