我在表格视图中显示的列表中的项目数是否存在内存问题?如果用户不断添加项目,应用程序最终会因内存问题而崩溃或出现问题吗?
答案 0 :(得分:1)
回答你的问题:
对此没有黑白回答。为了尽力解释,将UITableView看作有点像可视化数据。实际上,大多数人(包括我自己)使用源数据对象(如NSArray或NSDictionary)来提供UITableView的显示数据。应用于这些对象(数组和字典)的所有内存限制都适用于您的UITableView,假设您的UITableView设置正确并且您正在使用推荐的技术来重用单元格。归结起来的是:是否有可能拥有一个非常大的UITableView? - 是的多久,我不知道。我创建了具有复杂子类化单元格和200行的UITableViews,它们运行良好。这取决于您设置表格的方式以及您正在使用的数据源。请记住,限制是由数据源引起的。拥有一个非常大的阵列,最终你的设备会抛出一个内存警告。作为最佳实践,请使用分页。在线有大量教程可以在UITableViews上启用分页。如果正在下载图像,则会延迟加载图像(如果有)。
是的,你可以。如果你在创建UITableViewCells时足够有创意,你可以做很多很棒的事情。否则,您也可以使用标准的UITableViewCell。那里有两个标签:textLabel和detailTextLabel。使用这两个来显示您想要的数据。
您的UITableViewDelegate有一个您可以实现的didSelectRowAtIndexPath方法。只要你的UITableView视图控制器被设置为它的委托,它就会响应didSelectRowAtIndexPath。
只清空你用作数据源的数组(请记住你的numberOfRowsInSection数据源方法必须使用数组计数)并在UITableView上调用reloadData
编辑:这个问题已被编辑,所以只有上述4点中的第1点适用于问题:)其他人很高兴知道
答案 1 :(得分:0)
没有特定于桌面的,但是,你会用完。
最重要的可能是在dequeueReusableCellWithIdentifier:
委托方法中使用tableView:cellForRowAtIndexPath:
。这基本上将内存使用量减少到可见单元格的数量(加上一个滚动到视图中)。