Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何重构以下代码以使用NSSet.objectsPassingTest()呢_Ios_Swift - Fatal编程技术网

Ios 如何重构以下代码以使用NSSet.objectsPassingTest()呢

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 } } 我花了几个

我的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
    }
}
我花了几个小时进行搜索,但没有找到一个我能理解的例子


如果不清楚,我想将
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