将NSArray结果从Web服务传递到UITableViewController

时间:2012-11-22 12:48:36

标签: ios uitableview nsarray

很抱歉,如果这是一个重复的问题,但我似乎无法理解这个逻辑。

作为一种学习经历,我正在使用网络服务来填充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

1 个答案:

答案 0 :(得分:0)

使用类函数从WebserviceManager获取返回的数组。在视图的viewdidLoad视图控制器中调用该函数。

尝试低于概念。 在您的WebserviceManager类

  

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

在viewController的viewdidLoad中调用该函数并放宽你的tableview。

更新1: 检查“+”符号,表示这是目标C上的类方法。因此,您可以使用类名直接调用它。

e.g。

  

self.list = [WebserviceManager getArrayFromWebservice];