1

これが繰り返しの質問である場合は申し訳ありませんが、論理を理解できないようです。

学習経験として、私は Web サービスを使用して uitableview を埋めています。基本的に、私の Web サービスは配列の配列を返します。これを UItableviewcontroller に渡したいと思います。別のクラスに Web サービスがあり、配列を渡す方法がわかりません。

ここで一般的にベストプラクティスは何ですか?

これは私の WebService.m ファイルです:

#import "WebService.h"
#import "VaskerierTableViewController.h"

@implementation WebService

// Search the Laundrettes

-(void) searchLandrettes: (NSString*) SS {

        //create the service  
        SDZDevices2Api* service = [SDZDevices2Api service];
    service.logging = YES;

     // Returns NSMutableArray*.
    [service LocationFindSimple:self action:@selector(LocationFindSimpleHandler:) SearchString: SS Max: 25 BankId: [NSMutableArray array] BankName: [NSMutableArray array] Id: [NSMutableArray array] Name: [NSMutableArray array] Icon: [NSMutableArray array] Zip: [NSMutableArray array] Attributes: [NSMutableArray array]];

}

// Handle the response from LocationFindSimple.

 - (void) LocationFindSimpleHandler: (id) value {

     // Handle errors
     if([value isKindOfClass:[NSError class]]) {
             NSLog(@"%@", value);
         return;
     }

     // Handle faults
      if([value isKindOfClass:[SoapFault class]]) {
         NSLog(@"%@", value);
         return;
      }

      // Do something with the NSString* result
          NSArray* result = (NSArray*)value;
      NSLog(@"LocationFindSimple returned the string-value: %@", result);

          // Antal arrays i alt
          int arrayCount = [value count];
          NSLog(@"ArrayCont = %i", arrayCount);

     /*
      * Første array indeholder kun taksten "OK"
      * De efterfølgende synes at indeholde 6 elementer
      * Derfor opretter jeg 6 array, til det indhold, som jeg synes at kunne finde
      */

     if (arrayCount > 1) {

         // Blot til test
         NSLog(@"test = %@", [value objectAtIndex:1]);

         // Et array til hver type information, for hvert resultat
         NSArray *bankId = [[NSArray alloc] initWithArray:[value objectAtIndex:1]];
         NSArray *bankName = [[NSArray alloc] initWithArray:[value objectAtIndex:2]];
         NSArray *iId = [[NSArray alloc] initWithArray:[value objectAtIndex:3]];
         NSArray *name = [[NSArray alloc] initWithArray:[value objectAtIndex:4]];
         NSArray *icon = [[NSArray alloc] initWithArray:[value objectAtIndex:5]];
         NSArray *zip = [[NSArray alloc] initWithArray:[value objectAtIndex:6]];
         NSArray *attributes = [[NSArray alloc] initWithArray:[value objectAtIndex:7]];
    }
}
@end
4

1 に答える 1

0

クラス関数を使用して、WebserviceManager から返された配列を取得します。ビューのビュー コントローラーの viewdidLoad で関数を呼び出します。

コンセプトを下回ってみてください。WebserviceManager クラスで

+(NSMutableArray *)getArrayFromWebservice { ........ return returnedArray; }

viewController の viewdidLoad でその関数を呼び出し、テーブルビューをリラックスさせます。

更新 1: これが目的の C のクラス メソッドであることを意味する「+」記号をチェックします。したがって、クラス名を使用して直接呼び出すことができます。

例えば

self.list = [WebserviceManager getArrayFromWebservice];

于 2012-11-22T13:05:21.483 に答える