executeFetchRequest - erreur fatale: l'élément NSArray n'a pas pu correspondre au type de l'élément Swift Array

Je suis en essais swift avec CoreData et j'ai créé le code suivant:

import UIKit
import CoreData

class Contact: NSManagedObject {

    @NSManaged var name: String
    @NSManaged var email: String

    class func execute(){
        let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
        let context:NSManagedObjectContext = appDel.managedObjectContext!

        let entityDescripition = NSEntityDescription.entityForName("Contact", inManagedObjectContext: context)
        let contact = Contact(entity: entityDescripition!, insertIntoManagedObjectContext: context)

        contact.name = "john Apleesee"
        contact.email = "[email protected]"

        context.save(nil)

        let fetch:NSFetchRequest = NSFetchRequest(entityName: "Contact")
        var result = context.executeFetchRequest(fetch, error: nil) as [Contact]

        let firstContact = result[0] as Contact  // <<-- error !

        println("\(firstContact.name)")
        println("\(firstContact.email)")

    }

}

Quand je le lance:

Contact.execute()

Puis le compilateur affiche cette erreur:

fatal error: NSArray element failed to match the Swift Array Element type

lorsque j'essaie d'obtenir les valeurs de la matrice:

 let firstContact = result[0] as Contact

Je crois que le problème est dans executeFetchRequest. Sur Objective-c le type de retour de executeFetchRequest est un NSArray. Maintenant sur Swift le type de retour est un [AnyObject]?.

J'ai essayé de lancer le [AnyObject]? résultat à NSArraymais Xcode dit:

 Cannot convert the expression's type '[AnyObject]?' to type 'NSArray' 

Ce que je fais mal ?

Je suis en utilisant:
Xcode 6.0 (6A313) GM et
OSX 10.9.4

Mise à jour:
-----------

Si je reçois executeFetchRequest résultat que l'option d'un tableau et utiliser [NSManagedObject] au lieu de [Contact] il fonctionne.

if let result: [NSManagedObject]? = context.executeFetchRequest(fetch, error: nil) as? [NSManagedObject] {

        let firstContact: NSManagedObject = result![0]

        let name = firstContact.valueForKey("name") as String
        let email = firstContact.valueForKey("email") as String

        println("\(name)")
        println("\(email)")
    }

Update2:
-----------

Ce genre de problème se produit lorsque les instances d'entité n'est pas chargé à l'aide de votre NSManagedObject classe. Il y a plusieurs raisons pour lesquelles cela se produit, tout de qui mettent l'accent sur la "Base de Données ne pouvait pas trouver la classe que vous avez spécifié pour l'entité, sur la ligne de la classe dans le modèle de données."

Parmi les possibilités suivantes:
- Vous avez spécifié le mauvais package pour votre Swift classe
- Vous avez oublié de spécifier la classe
- Vous avez mal orthographié le nom

Dans mon cas, a été j'ai oublié de préciser que la classe POB montre dans sa réponse.

source d'informationauteur Sebastian