-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

問題がある場合、他に何が原因なのかわかりません。私はこれからがらくたをグーグルで検索し、コードを何度もチェックしましたが、これを理解できないようです!

助けてください。

4

3 に答える 3

2

あなたは以前に同じ質問をしましたが、私は答えました。その回答の関連部分を以下に繰り返します。意味をなさないものがある場合は、下にコメントを残してください。


htmlページをロードしようとしていると思いますUIWebViewか?には明らかに が必要IBOutletですUIWebView。( に慣れていない場合はIBOutlet、Apple のチュートリアルYour First iOS Appを参照してください。)

とにかく、以下の私の例では、あなたが呼ばIBOutletれていると仮定するつもりです.webviewNSOperationQueueNSUrlConnectionUIWebView

- (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 プログラミング チュートリアル (Google で検索するだけでたくさんヒットします) を参照するか、Appleアプリ プログラミング ガイドを参照するか、 http://developer.apple.comのすばらしいリソースを確認することをお勧めします。 .


アップデート:

ところで、 と の使用を主張するNSOperationQueue場合でも、webview に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が、本当にこの方法でやりたい場合は、どうぞ。

于 2012-10-04T23:13:52.250 に答える
1

' uiwebview を使用して Web アプリを起動しようとしています。何か良い方法をご存知でしたら、教えてください!」

[theWebView loadRequest:[NSURLRequest requestWithURL:theURL]];
于 2012-10-04T23:08:32.863 に答える
1

3 つの異なるエラーがあります。最初の "(UIWebView)" は何も意味しません。次に、何かを意味するステートメントがある場合は、その後にセミコロンが必要です。3 番目に、NSLog(@"Error: %@", 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 が投稿したメソッドを使用する必要があります。

于 2012-10-04T23:09:24.390 に答える