我想用元素數組填充UITableView。這些元素是結構:訪問結構內的枚舉
public enum itemNumber {
case Item1
case Item2
case Item3
case Item4
case Item5
case Item6
}
public enum sectionNumber {
case Section1
case Section2
case Section3
case Section4
}
public struct Item {
var itemNumber: itemNumber?
var sectionNumber: sectionNumber?
var checkmark: Bool
init(sectionNumber: Int, itemNumber: Int, checkmark: Bool) {
switch sectionNumber {
case 0: self.sectionNumber = .Section1
case 1: self.sectionNumber = .Section2
case 2: self.sectionNumber = .Section3
case 3: self.sectionNumber = .Section4
default: break
}
switch itemNumber {
case 0: self.itemNumber = .Item1
case 1: self.itemNumber = .Item2
case 2: self.itemNumber = .Item3
case 3: self.itemNumber = .Item4
case 4: self.itemNumber = .Item5
case 5: self.itemNumber = .Item6
default: break
}
self.checkmark = checkmark
}
}
在我的控制器類我要檢查每個Item
的部分號,以便將其分配給適當的部分:
func getNumOfItemsPerSection(section: Int) -> Int {
var num = 0
switch section {
case 0: num = self.items.filter { $0.sectionNumber == .Section1 }.count
case 1: num = self.items.filter { $0.sectionNumber == .Section2 }.count
case 2: num = self.items.filter { $0.sectionNumber == .Section3 }.count
case 3: num = self.items.filter { $0.sectionNumber == .Section4 }.count
default: break
}
return num
}
此方法不編譯: 二元運算符'=='不能應用於類型'sectionNumber?'的操作數和'_'
這樣做的正確方法是什麼? 謝謝!
請,請與起始大寫字母('ItemNumber','SectionNumber宣佈你的枚舉')和小寫的情況,否則整個代碼讀起來非常混亂。錯誤的原因是枚舉變量是可選項。由於枚舉總是有固定數量的情況,通常包含枚舉的變量應該是非可選的 – vadian
還有很多東西需要學習...不知道這個命名約定。獎勵! – gmoraleda