这是我的场景,我有 ViewController1 和 Class1(服务类)。
我通过在 ViewController1 中设置委托和数据源来在 nib 中加载 tableView。在 viewDidLoad 中,我在另一个类(Class1)中调用 networkCall 函数。在 Class1 中,收到响应后,它会将响应数据数组传递给 ViewController1 中的函数,其中数据应填充到 tableview 中。
我已经在 xib 中连接了数据源和委托。问题:当我在 ViewController1 中以数组形式获得响应时,UITableView 变为 nil,我无法使用 reloadData,但我的数组包含来自服务器的项目列表。
这是我的代码
视图控制器1
- (void)viewDidLoad
{
[super viewDidLoad];
ClassA *class = [[ClassA alloc]init];
[class getResponse];
}
//This method is calling from ClassA using delegate
-(void)responseData:(NSArray*)arrayList
{
//arrayList have response data
[tableView reloadData];//here tableView becomes nil.
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog(@"array count %d",array.count);//has number of items(for me, its 3).
return array.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"TableView";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = @"dsds";
return cell;
}
tableView 是第一次调用。
在界面的 ViewController1 中,我正在设置协议
<UITableViewDelegate,UITableViewDataSource>