![](/img/trans.png)
[英]When does UIViewAutoresizing flexible Height+Top or Height+Bottom ever make sense? What does it do?
[英]Does it ever make sense to split UITableDelegate and UITableDataSource?
這困擾了我很長時間。 為UITableView定義了兩種委托協議:實際的委托和數據源。 但是,考慮到方法在兩種方法之間的分配方式,我還沒有看到在兩個單獨的對象中實現協議可行的情況。 當這樣做確實有意義時,有人可以舉一個例子嗎?
簡短的回答:是的。
長答案:
它們分為兩種不同的協議,因為它們具有不同的用途。
委托負責管理表本身的各個方面,例如選擇,重新排序和刪除行,... UITableViewDelegate協議參考
與之相反,UITableViewDatasource負責調整您的數據模型,使其適合表的需求。 它提供了表格的單元格,告訴表格有多少節,每個節有多少行,... UITableViewDatasource協議參考
根據您的數據以及您要對表執行的操作,該代碼可能會變得任意大。 如果太大,可以將其拆分以更好地導航和概覽。 我可以想到的一種情況就是這種區別可以提高代碼質量。
IMO,這樣做不會帶來任何好處,因為數據源僅提供與數據交互的方法,與委托相同。 如果您的商店又大又笨拙,那么分離數據源將無法解決問題。
強制分離時,您會得到一些無法預測的行為:
如何避免iOS上笨拙的UITableViewController?
另一方面,根據應用程序設計,可能需要將數據源與委托分開:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.