我有這個 numberOfRowsInSection。
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
switch Section(rawValue: section)! {
case .slider: return parentVC.selectedCommunity == nil ? 1 : 0
case .header: return 1
case .item:
if case item = PostType.survey.rawValue {
let sectionItems = parentVC.surveys
var numberOfRows: Int = sectionItems.count
for rowItems in sectionItems {
numberOfRows = rowItems.surveyAnswers!.count
}
return numberOfRows
} else { return cellTypes.count }
}
}
我想檢查 .item 是否是 PostType.survey 我試圖用不作業的代碼來顯示邏輯。if case item = PostType.survey.rawValue { 這個陳述句不能抓
我怎樣才能檢測到它?
enum Section: Int {
case slider
case header
case item
static var numberOfSections: Int { return Section.item.rawValue 1 }
var reuseIdentifier: String {
switch self {
case .slider: return NewsFeedSliderTableViewCell.reuseIdentifier
case .header: return NewsFeedPostHeaderTableViewCell.reuseIdentifier
case .item: return NewsfeedTableViewCell.reuseIdentifier
}
}
}
enum PostType: Int {
case post = 0
case question = 1
case survey = 2
}
uj5u.com熱心網友回復:
您正在使用if case item = PostType.survey.rawValue但 item 是Section.
通過查看您的代碼,我假設您想檢查是否section == item.rawValue然后您檢查Section.item.rawValue == PostType.survey.rawValue或不檢查。
但作為一個列舉情況,Section.item.rawValue = 2并且PostType.survey.rawValue = 2總是 = 2,除非你定義不同。因此,如果您與代碼中的section哪個進行比較Int。在else你的條件下.item永遠return cellTypes.count不會被執行。
所以改為使用if case item = PostType.survey.rawValue {
您可以更改為,if case section = PostType.survey.rawValue {因為您需要在這里比較的是rawValue哪個是Int或完全洗掉條件,因為和rawValue是相同的。itemsurvey
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/515077.html
