我刚刚开始在iOS学习UI测试。目前,我的应用程序就像facebook(show newfeed)。当用户向下滚动并且它是最后一行时,我需要请求新数据,我确实喜欢这样。
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView == self.tblSortingInListingVC)
{
return;
}
if (tableView == self.tblListing || tableView == self.searchDisplayController.searchResultsTableView)
{
NSInteger lastRow = 0;
if (tableView == self.tblListing) lastRow = self.viewData.count - 1;
else lastRow = self.searchViewData.count - 1;
if ([indexPath row] == lastRow)
{
if(tableView == self.tblListing || tableView == self.searchDisplayController.searchResultsTableView)
{
[self loadMoreToListingView]; //Method to request to server to get more data
}
}
return;
}
}
问题是 if([indexPath row] == lastRow)总是如果我继续请求我是否像这样进行UI测试(键入或滚动表格)。我怎么这样做,它不会一次又一次地请求?
XCUIApplication *app = [[XCUIApplication alloc] init];
[app.tables.staticTexts[@"Apr 04 16:28"] tap];
答案 0 :(得分:0)
您需要一个标记(称为isReload
)来再次管理您的请求。再次。
那么你如何管理这面旗帜?在ViewController中它非常简单
定义变量isReload
并设置它的初始值YES
。现在检查isReload
标志,以您实现的loadMoreToListingView
方法调用Web服务。
-(void)loadMoreToListingView {
if (isReload) {
// here call your web -service ...
}
}
现在响应网络服务,您需要检查搜索列表&我正在执行以下更新isReload
标记。
NSArray *searchData = response[@"searchData"];
// So when ever no data comes from server then this flag will be flase.
// So isReload will not call webservice Again&again
isReload = gps_details.count > 0;