Cuenta el número de elementos en una matriz con un valor de propiedad específico

Tengo una class Person ():

class Person : NSObject { var firstName : String var lastName : String var imageFor : UIImage? var isManager : Bool? init (firstName : String, lastName: String, isManager : Bool) { self.firstName = firstName self.lastName = lastName self.isManager = isManager } } 

Tengo una variedad de Person ()

 var peopleArray = [Person]() 

Quiero contar el número de personas en la matriz que tienen

  isManager: true 

Siento que esto está ahí fuera, pero no puedo encontrarlo, ni encontrar los parameters de búsqueda.

Gracias.

Usar el método de filter :

 let managersCount = peopleArray.filter { (person : Person) -> Bool in return person.isManager! }.count 

o incluso más simple:

 let moreCount = peopleArray.filter{ $0.isManager! }.count 

Puede usar networkinguce siguiente manera:

 let count = peopleArray.networkinguce(0, combine: { (count: Int, instance: Person) -> Int in return count + (instance.isManager! ? 1 : 0) } ) 

o una versión más compacta:

 let count = peopleArray.networkinguce(0) { $0 + ($1.isManager! ? 1 : 0) } 

networkinguce aplica el cierre (segundo parámetro) a cada elemento de la matriz, pasando el valor obtenido para el elemento anterior (o el valor inicial, que es el valor 0 pasado como su primer parámetro) y el elemento de matriz actual. En el cierre, se regresa el count más cero o uno, dependiendo de si la propiedad isManager es true o no.

Más información sobre networkinguce y filter en la reference de biblioteca estándar