我是否必须在MonoTouch的UITableViewSource中为GetCell()和GetViewForHeader()的返回值保留显式引用?

时间:2012-06-11 09:55:22

标签: c# ios uitableview xamarin.ios

我记得MonoTouch中有必要(仍然是?)保持对UITableViewCells返回的UITableViewSource.GetCell()的显式引用,以避免收集托管单元格。关于这个问题,我有一些问题:

  • 从MonoTouch 5.2.12开始:是否仍然需要保持ArrayList()创建托管单元并返回GetCell()?
  • 如果我使用Storyboards和动态单元原型,我从未明确创建UITableViewCell但仅使用DequeueReusableCell()。这个案子怎么样?
  • GetViewForHeader()怎么样?我是否必须保留对从该方法返回的视图的引用?或MonoTouch内部负责这个?

2 个答案:

答案 0 :(得分:1)

据我所知,您需要保留对单个单元格的引用的唯一情况是,如果您同时拥有的委托,则该单元格不是自定义类。

如果你是UITableViewCell的子类,你不应该持有任何引用。

如果您没有设置任何代表,您也不应该持有任何参考。

答案 1 :(得分:0)

如果有任何帮助,MonoTouch.Dialog也不会保留对Cell的引用,至少不是我记得的那样!只需制作并传递它。 (也发布在这个问题上)

考虑到它,你不应该保留对单元格的引用,因为它们被设计为可以重用....所以你可能无法在下一个GetCell / GetCellForReuse类型调用中获得相同的单元格。