¿Cómo hago una solicitud de búsqueda con la nueva función fetchRequest de NSManagedObject?

En iOS 10, el equipo CoreData agregó un nuevo método "fetchRequest" a NSManagedObject. Se parece a esto:

public class func fetchRequest() -> NSFetchRequest<NSFetchRequestResult>

Lo cual, por lo que entiendo, nos permite reemplazar esto:

let request = NSFetchRequest<MyEntity>(entityName: "MyEntity")

con este:

let request = MyEntity.fetchRequest()

Sin embargo, cuando trato de hacer una solicitud simple como esta:

let request = MyEntity.fetchRequest()
do {
    results = try request.execute()
} catch let error {
    print("failed to fetch coffee object: \(error)")
}

Recibo el siguiente error:

Error Domain = NSCocoaErrorDomain Code = 134060 "(null)" UserInfo = {message = No se puede recuperar sin un NSManagedObjectContext en alcance}

Entonces, claramente el error indica que necesito poner un NSManagedObjectContext dentro del alcance. He estado buscando ejemplos, pero parece que puedo encontrar un ejemplo completo de cómo realizar una solicitud utilizando las nuevas características de la API.

Pregunta

Utilizando las últimas funciones de la API de Core Data, ¿cómo hago una simple solicitud de recuperación? La pregunta subyacente es cómo pongo mi NSmanagedObjectCotnext dentro del alcance.

Debo señalar que puedo hacer una solicitud con éxito utilizando la sintaxis tradicional.

Respuestas a la pregunta(2)

Su respuesta a la pregunta