Tamaño de lote de entidades relacionadas con límite de CoreData

Me encontré con un problema CoreData realmente simple pero parece difícil de resolver. Escribir una aplicación de chat simple donde cada usuario tenga muchos mensajes.

class CoreUser: NSManagedObject
{
    @NSManaged var firstname: String?
    @NSManaged var id: String?
    @NSManaged var lastname: String?
    @NSManaged var nickname: String?
    @NSManaged var messages: NSSet
}

class CoreMessage: NSManagedObject
{
    @NSManaged var body: String?
    @NSManaged var owner: CoreUser
    @NSManaged var state: String
    @NSManaged var timestamp: NSDate
}

La relación es: uno a muchos

Obteniendo entidad de usuario:

func getCoreUser(userId: String) -> CoreUser?
{
    var error: NSError?;
    let fetchRequest = NSFetchRequest(entityName: "CoreUser");
    let nodeId = NSString(string: userId.lowercaseString);
    let pred = NSPredicate(format: "id == %@", nodeId);
    fetchRequest.fetchLimit = 1;
    fetchRequest.predicate = pred;
    let fetchResults = self.managedObjectContext!.executeFetchRequest(fetchRequest, error: &error) as? [CoreUser];

    if let results = fetchResults
    {
        return results.first;
    }
    return nil;
}

¿Cómo puedo limitar la entidad de mensaje relacionada (20 mensajes, ordenados por fecha)? La matriz de resultados contiene todos los mensajes de este usuario.

Gracias por ayudar.

Respuestas a la pregunta(1)

Su respuesta a la pregunta