Trier CoreData résultats à l'aide NSPredicate en Swift

Je suis en train d'écrire un simple carnet d'application rapide et besoin de trier les résultats d'une CoreData requête.

Fondamentalement, j'ai mis en place un NSManagedObject appelé "Répertoire", avec le cas échéant dans les noms de champ - par exemple, "name_f" est le nom de l'utilisateur.

Les noms dans le CoreData base de données est interrogée sont dans l'ordre alphabétique. Cependant, bien que la première recherche renvoie les résultats dans l'ordre alphabétique, de poursuivre les recherches parfois ne sont pas d'après la base de données a été mise en doute par d'autres domaines du programme. Je ne suis pas sûr pourquoi, mais voulez mettre dans le code activement trier le tableau retourné par quelque domaine que ce soit.

Mon code qui renvoie la NSManagedObject tableau est comme suit:

func SearchName(nameToSearch: String) -> NSArray {
    let appDel:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
    let context:NSManagedObjectContext = appDel.managedObjectContext! //I added the !

    let request = NSFetchRequest(entityName: "Directory")
    request.returnsObjectsAsFaults = false      //will return the instance of the object

    //request.predicate = NSPredicate(format: "name_f = %@", nameToSearch)
    //request.predicate = NSPredicate(format: "name_f MATCHES '.*(\(nameToSearch)).*'")
    request.predicate = NSPredicate(format: "name_f MATCHES[cd] '(\(nameToSearch)).*'")
    var results:NSArray = context.executeFetchRequest(request, error: nil)
    return results
}

En aparté, je suis en utilisant le code suivant pour tirer une valeur spécifique de résultats renvoyés (où searchResult est une instance de la classe qui SearchName):

    var particularEntry = self.searchResult[self.selectedItem] as Directory
    lblDetailName.text = thisPerson.name_f

Idéalement, je voudrais être en mesure de:
1 - Modifier le code ci-dessus pour s'assurer que les 'résultats' tableau est trié de manière appropriée.
2 - Identifier le code qui pourrait par la suite être appliquée aux résultats de tableau pour re-trier par n'importe quel champ.

Merci d'avance!

Avez-vous un look à la sortDescriptors propriété de NSPredicate ? La "Base de Données Guide de Programmation", a aussi de nombreux exemples (Objective-C), voir developer.apple.com/library/mac/documentation/Cocoa/Conceptual/....
sortDescriptors est la propriété de NSFetchRequest. Je ne pense pas que NSPredicate a telle propriété.
Vous avez raison, je voulais dire NSFetchRequest.

OriginalL'auteur Oliver Spencer | 2014-08-27