2015-11-23 44 views
0

我有一個分組樣式的UITableView從對象數組中分組的UITableView

我想從一個對象數組中填充此表。比方說,

class User { 
    var name : String! 
    var age : Int! 
    var group : String! 
} 

User具有相同group值必須在我UITableView同款。爲此,我計劃將我的數組轉換爲一個字典,其中group作爲鍵和相應對象的值的數組,但UITableView通過IndexPath請求值,並且我沒有找到通過以下方式獲取哈希值的簡單方法:指數。

我該如何以優雅的方式解決這個問題?

回答

1

通常你會創建一個字典數組,每個字典都有組名和成員數組。

另一種方法是建立自己的羣體字典,就像你,然後將鑰匙拔到一個數組中,並使用該數組作爲您的組名稱:

let groupNames = tableData.keys.sort() 

保存組名稱爲屬性在VC上,然後在需要用戶數據時可以使用它們返回正確的組:

let user = tableData[groupNames[indexPath.section]][indexPath.row] 
1

您可以根據group屬性對您的數組進行排序,然後計算每個組中有多少個對象,以及您擁有多少個組。然後,您可以使用組的數量作爲表格中的部分數量,並將每個組的對象數量作爲每個部分的行數。

但是,就效率而言,您的解決方案已經相當體面,並且非常清晰。保存爲group信息的冗餘。