我正在使用web服务来填充项目的数组,然后用于填充我的表格视图的单元格。viewDidLoad之前的延迟表视图加载或加载数组?
现在我遇到了表视图本身的问题。当我检查“numberofrows”方法时,数组尚未加载。出于某种原因,它加载了“之后”(根据我的nslogs &断点),尽管我已经尽可能早地将每种加载方法都放在该控制器中。
现在是什么我不知道的是:
- 有延迟表视图的创建,所以我敢肯定,我的数组被加载的方法吗?
- 有没有办法加载我的数组?它目前是我在viewDidLoad中的第一行。 (调用另一个类,然后调用Web服务并返回一个数组,但到那时,表视图已经加载并且为空)。
我试过了:把tableview reloadData。但它根本不起作用。出于某种原因,编译器会读取该行,但不会加载任何新内容,即使此时阵列已满。
我错过了什么?
我可以编辑和添加一些代码,你们会要求(我的tableview,如果我把我的阵列硬编码的对象只是罚款),但因为这看起来像一个学校的问题就在这里,也许我只是忘了一些东西。
伙计们,我是所有的耳朵! 编辑:
我的不同方法;我已经删除了不必要的代码,以便更清晰地阅读。 编译器从不进入cellForRow,因为numberOfRows返回一个零数字。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"CustomCellTableViewCell";
CustomCellTableViewCell *cell = [self.tbUpcomingEvents dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
cell.lbTitle = [_eventList objectAtIndex:indexPath.row];
return cell;
}
行数; nslog返回零。
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog(@"numOfRows : %i", [_eventList count]);
return [_eventList count];
}
我的webservice方法,这是从“webservice类”加载数据的方法calle。 在这里,NSLog显示了一个完整的数组。
- (void)loadData:(NSMutableArray*)arrayEvent
{
//arrayEvent is full from the internet data. eventList is also full on the NSLog.
_eventList = arrayEvent;
NSLog(@"LoadData : %i", [_eventList count]);
[self.tbUpcomingEvents reloadData];
}
我viewDidLoad方法
- (void)viewDidLoad
{
[super viewDidLoad];
//Calling my UseCaseController to load the data from the internet.
UCC *sharedUCC = [UCC sharedUCC];
[sharedUCC getUserEventsInDbDis:self :_user];
}
请出示调用重载的tableview,numberOfRowsInSection,numberOfSections和cellForRow方法以及 –
我已经按照你的要求编辑的代码! numberOfSections只是默认值1,所以我没有办法。 –
加载数据和numberOfRows中的断点。 numberOfRows在loadData之后被调用吗?在加载数据中注销'self.tbUpcomingEvent'以确保它不为零。注销'self.tbUpcomingEvents.delegate'以确保它也被设置。 –