使用Array.count匹配特定条件的元素Swift / Populate UITableView

时间:2016-09-23 21:00:02

标签: ios swift

目前我通过以下方式填充我的UITableView:

var eventDates: [NSMutableDictionary] = []

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

      return eventDates.count
}

eventDate中的每个eventDates都有一个valueForKey("monthsYear")

我现在想要硬编码eventDates.count仅返回带有valueForKey("monthsYear") == "September 2016"的eventDates。

换句话说,再解释一次:

eventDates.count = 10.但其中只有5个符合条件valueForKey("monthsYear") == "September 2016"

如何只获取这5个元素来填充UITableView(只有5行)。

理论上是这样的:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    let returnValue = 0
    for date in eventDates where date.valueForKey("monthsYear")  == "September 2016" {
           returnValue++
    }
    return returnValue
}

非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

所以你需要做的是一个简单的过滤器

let sepDates = eventDates.filter() { $0.valueForKey("monthYear") == "September 2016" }
return sepDates.count

有些人没有回复相关内容

One Advice,尝试使用模型来避免使用valueForKey,因此您的数组看起来像

var eventDates: [EventDate] = []
祝你好运,玩得开心;)