为什么UITableView numberOfRowsInSection被多次调用?

问题描述:

我正在请求CoreData的数据。为什么UITableView numberOfRowsInSection被多次调用?

有两个CoreData值。

我有这个函数来设置行数:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    print("TEST\n") 
    return lebensmittel.count 
} 

打印的输出是:

TEST 

TEST 

TEST 

TEST 

TEST 

为什么我得到测试5次,当lebentsmittel.count返回2?

+2

因为它被称为各种各样的时间,只要需要它。如果你重新加载数据,如果你滚动并需要显示另一个“隐藏”行,它将计算是否有行显示等。 – Larme

use this code:- 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 
      [ProductListStore removeAllObjects]; 
      return ProductListStore.count; 
    } 

remove array element. 

当您的UITableView需要更新任何内容时,可能会多次调用代表方法。默认情况下,在第一次加载或更新UITableView时重新调用(重新加载数据)。

这是不是一个好的做法,把更多的东西放在numberOfRowsInSection里面。

我希望这对你有所帮助。