Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS更新重新加载内容计时器_Ios_Objective C_Uitableview_Timer - Fatal编程技术网

iOS更新重新加载内容计时器

iOS更新重新加载内容计时器,ios,objective-c,uitableview,timer,Ios,Objective C,Uitableview,Timer,在我的VC中,我有一个UITableView。每个单元格都有一个UITableView作为其内容之一定时器设置为每10秒更新一次每个单元格。事件被处理,这也会重新加载相应的单元格 计时器调用的方法:- -(void) updateVisitotsLists { NSLog(@"UPDATING VISITORS LIST ***************************"); // Call API's to get lists [api getVisitorsList]; // I

在我的VC中,我有一个
UITableView
。每个
单元格
都有一个
UITableView
作为其内容之一<代码>定时器设置为每10秒更新一次每个单元格。事件被处理,这也会重新加载相应的单元格

计时器调用的方法:-

-(void) updateVisitotsLists {

NSLog(@"UPDATING VISITORS LIST ***************************");

// Call API's to get lists
[api getVisitorsList];

// Init Arrays
browsingList = [MainAppDataObject sharedAppDataObject].visitors_browsingList;
secondList = [MainAppDataObject sharedAppDataObject].visitors_secondList;
thirdList = [MainAppDataObject sharedAppDataObject].visitors_thirdList;
fourthList = [MainAppDataObject sharedAppDataObject].visitors_fourthList;

// AS these are no more useful, so make it nil & save memory
[MainAppDataObject sharedAppDataObject].visitors_browsingList = nil;
[MainAppDataObject sharedAppDataObject].visitors_secondList = nil;
[MainAppDataObject sharedAppDataObject].visitors_thirdList = nil;
[MainAppDataObject sharedAppDataObject].visitors_fourthList = nil;

// Reload all lists with latest data
[self reloadBrowsingRow];
[self reloadSecondRow];
[self reloadThirdRow];
[self reloadFourthRow];
}
事件处理程序方法:-

-(void) handleNewVisitor : (NSNotification *) notification {
// UPDATE VISITOR'S LIST
Visitor *v = [notification object];

@try {
    if (v != nil) {
        // Add V to browsing list
        [browsingList addObject:v];

        // Reload browsing list
        [self reloadBrowsingRow];

    }
}@catch (NSException *e) {
    NSLog(@"EXCEP - %@", e);
}
v = nil;

return;
}
重新加载方法-

-(void)reloadBrowsingRow {
// Browsing
VisitorsListsCell *bcell = (VisitorsListsCell*)[self.visitorlistsTv cellForRowAtIndexPath:[NSIndexPath indexPathForRow:2 inSection:0]];
[bcell.listsTableView reloadData];
[bcell updateButtonText];
[bcell setNeedsDisplay];
bcell = nil;

return;
}
问题是:-

当通过计时器调用
updateVisitotsLists
时,更新的内容不会反映在单元格上。 当事件处理程序方法调用相同的
[self-reloadBrowsingRow]时

我觉得这两个方法可能同时调用reload方法,所以这一定是在发生什么?如何确保单元格内容在任何方面都得到更新?非常感谢您的帮助。谢谢。

使用
[tableview重新加载数据]在该方法上。

因为
tableView
上的
Reload
将重新加载所有数据,因此它将更有帮助。

使用[tableView reloadData];在那上面method@MohitPopat,那么如何从handleNewVisitor方法成功重新加载。而重载BrowsingRow方法只重载一个单元格,那么为什么要在tableview上调用重载呢??在tableview上重新加载将重新加载所有数据。因此,这将是更多helpfull@MohitPopat,那么您的意思是,不要重新加载4个单元格,而只调用reload tableview。对,对。试试这个,告诉我它是否有效