Ios 如何重构以下代码以使用NSSet.objectsPassingTest()呢
我的ViewController中有以下代码。我想对它进行重构以使用Ios 如何重构以下代码以使用NSSet.objectsPassingTest()呢,ios,swift,Ios,Swift,我的ViewController中有以下代码。我想对它进行重构以使用NSSet.objectsPassingTest(),这样它更简洁,更容易理解。我用的是Swift,所以没有目标C let items = feed.items?.allObjects as! [Item] var unreadCount = 0 for item in items { if !item.read { unreadCount = unreadCount + 1 } } 我花了几个
NSSet.objectsPassingTest()
,这样它更简洁,更容易理解。我用的是Swift,所以没有目标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替换为![Item]
带有让items=feed.items?.objectsPassingTest()
看起来您的项目是一个数组,而不是一个集合。试试这个:
let unreadCount = items.reduce(0) { $0 + ($1.read ? 0 : 1) }
看起来您的项目
是一个数组而不是一个集合。试试这个:
let unreadCount = items.reduce(0) { $0 + ($1.read ? 0 : 1) }
另一种方法
let unreadCount = items.filter { !$0.read }.count
另一种方法
let unreadCount = items.filter { !$0.read }.count