很抱歉,如果这是一个重复的问题,但我似乎无法理解这个逻辑。
作为一种学习经历,我正在使用网络服务来填充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
答案 0 :(得分:0)
使用类函数从WebserviceManager获取返回的数组。在视图的viewdidLoad视图控制器中调用该函数。
尝试低于概念。 在您的WebserviceManager类
中+(NSMutableArray *)getArrayFromWebservice {........ return returnedArray; }
在viewController的viewdidLoad中调用该函数并放宽你的tableview。
更新1: 检查“+”符号,表示这是目标C上的类方法。因此,您可以使用类名直接调用它。
e.g。
self.list = [WebserviceManager getArrayFromWebservice];