我将如何重构以下代码以使用NSSet.objectsPassingTest()

时间:2016-06-05 22:45:36

标签: ios swift

我的ViewController中有以下代码。我想重构它以使用NSSet.objectsPassingTest(),因此它更简洁,更容易理解。我正在使用Swift,所以没有Objective C.。

let items = feed.items?.allObjects as! [Item]
var unreadCount = 0
for item in items {
    if !item.read {
        unreadCount = unreadCount + 1
    }
}

我花了几个小时搜索,但我找不到一个我能理解的例子。

如果不清楚,我想将let items = feed.items?.allObjects as! [Item]替换为let items = feed.items?.objectsPassingTest()

2 个答案:

答案 0 :(得分:3)

另一种方法

let unreadCount = items.filter { !$0.read }.count

答案 1 :(得分:2)

看起来你的{{1}}是数组而不是数组。试试这个:

{{1}}