2012-02-26 9 views
0

私はNSURLConnectionを使用していくつかのデータを取得するクラスを持っています。方法はgetDataです。サーバーへのリクエストが作成され、データが受信されると、メソッドconnection:didRecieveData:がいくつかのプロパティを更新します。NSURLConnectionを使用するオブジェクトからデータを取得する

- (void)getData 
{ 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:dataURL]; 
    NSURLConnection *connectionWithRequest = [NSURLConnection connectionWithRequest:request delegate:self]; 
} 

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{ 
    // Processing data 
    dataProperty = processedData; 
} 

問題は、私はこのクラスと呼び出し方法getDataのインスタンスを作成するときにデータがまだ受信されていないので、私はすぐに、オブジェクトのプロパティを取得することはできません、です。私はデリゲートとプロトコルについてAppleのリファレンスを読んだが、NSURLConnectionの場合はconnection:didRecieveData:のように動作するこのクラスのデリゲートメソッドを実装する方法を理解していない。

どうすればいいですか?私は非常に喜んで、もしあなたがちょうど例へのリンクを投稿すれば。ありがとうございました。

+2

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html – Max

+0

申し訳ありませんが、NSURLConnectionは私のために正常に動作します。私は自分のデリゲートメソッドを作成する方法を知りたいです。それは接続のように動作します:didRecieveData :. –

答えて

0

このクラスのデリゲートメソッドを実装する方法はわかりません。これはconnection:didRecieveData:NSURLConnectionのように動作します。

NSURLConnectionと同じ方法:

  1. このオブジェクトにdelegateという名前のプロパティを与えますが。
  2. このプロパティを別のオブジェクトに設定します。
  3. connectionDidReceiveData:に、デリゲートにメッセージを送信します。
  4. デリゲートで、他のオブジェクトが呼び出すメソッドを実装します。
+0

ありがとう!それはシンプルに見え、私はそれが私が必要と思うものだと思う。 –

0
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"YOUR API URL"]]; 

    NSString *email = @"[email protected]"; 
    NSString *password = @"123456"; 
    NSString *deviceToken = @"simulator"; 
    NSString *deviceType = @"1"; 

    NSString *post = [NSString stringWithFormat:@"email=%@&password=%@&deviceToken=%@&deviceType=%@",email,password,deviceToken,deviceType]; 

    NSData *requestBodyData = [post dataUsingEncoding:NSUTF8StringEncoding]; 
    request.HTTPMethod = @"POST"; 
request.HTTPBody = requestBodyData; 
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] 
          completionHandler:^(NSURLResponse response, NSData responseData, NSError *error) 
    { 
     NSLog(@"%@",responseData); 
     NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:nil]; 
     NSLog(@"%@",dic[@"data"]); 
    }]; 
+0

OPが特別に尋ねるので、多少の説明が役に立つでしょう。宜しくお願いします – YakovL

関連する問題