¿Hay alguna diferencia entre NSCountResultType y countForFetchRequest: error: en términos de performance?

Solía ​​usar NSCountResultType para contar entidades en mis contexts CoreData. Hace un time encontré countForFetchRequest:error: que parece hacer lo mismo con otra syntax más (más legible).

¿Hay alguna diferencia entre estos dos en términos de performance, gestión de memory u otros aspectos a pesar de la syntax?

Parece que no hay ninguna diferencia (solo que uno devuelve un NSUInteger y el otro devuelve un NSArray contiene un NSNumber ).

Configuración del argumento de inicio

 -com.apple.CoreData.SQLDebug 3

revela que ambos

 NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Event"]; NSUInteger count = [context countForFetchRequest:request error:NULL]; 

y

 NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Event"]; [request setResultType:NSCountResultType]; NSArray *result = [context executeFetchRequest:request error:NULL]; 

ejecute exactamente la misma instrucción SQLite

 SELECT COUNT (DISTINCT t0.Z_PK) FROM ZEVENT t0