0

目的 c: と を使用してデータベースに接続する serviceClass がNSURLConnectionありsendAsynchronousRequestます。

このクラスメソッドを使用して、db-data を要求している他のクラスメソッドに返すことができるようにしたいと考えています。

しかし、sendAsynchronousRequestは void を返しているので、どうすればこれを行うことができますか?

私はそれについて頭を悩ませることができません。ブロック?しかし、どのように...

助けてください

atm 次のコードチャンクでユーザー オブジェクトを直接作成しています。

[NSURLConnection
 sendAsynchronousRequest:urlRequest
 queue:[[NSOperationQueue alloc] init]
 completionHandler:^(NSURLResponse *urlResponse,
                     NSData *data,
                     NSError *error) {

     if ([data length] > 0 && error == NULL){ // do success or error call with true or    false
         NSMutableData *incomingData;
         if(!incomingData) {
             incomingData = [[NSMutableData alloc]init];
         }
         [incomingData appendData:data];
         NSString *string = [[NSString alloc]initWithData:incomingData
                                                 encoding:NSUTF8StringEncoding];
         //incomingData = nil;

         // create dictionary from json
         NSData *jsondata = [NSData dataWithData:incomingData];
         NSMutableDictionary *userDictionary = [NSJSONSerialization JSONObjectWithData:jsondata 
                                                                                  options:NSJSONReadingMutableContainers 
                                                                                    error:NULL];
         // create user object
         User *user = [User userFromDictionary:userDictionary];
         NSLog(@"user back to object successfull!! %@", user);

     }



     }
4

1 に答える 1

0

IncomingData のプロパティを使用し、そのプロパティを使用してデータを他のメソッド/クラスに渡すことができます。

@property (nonatomic, retain) NSMutableData * incomingData;

を使用して値を設定できるようself.incomingDataになり、戻る必要があります。他のメソッドで使用できます。これを他のクラスに渡す必要がある場合は、渡すことができます。

于 2012-05-14T14:17:50.993 に答える