Question

J'ai ajouté ce qui suit à l'exemple AppDelegate dans Core Data Recipes, mais je ne reçois aucun résultat imprimé dans la console ... des idées?

#pragma mark -
#pragma mark TESTING RETRIEVAL OF RECIPE NAMES

- (NSArray *)allRecipes{
    NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"name" inManagedObjectContext:self.managedObjectContext];
    [request setEntity:entity];

    NSArray *result = [[NSArray alloc] init];
    result = [self.managedObjectContext executeFetchRequest:request error:NULL];    

    NSManagedObject *firstObject = [result objectAtIndex:0];
    NSLog(@"firstObject.name: %@", [firstObject valueForKey:@"name"]);

    }

XCode me donne un avertissement après cette méthode: "Le contrôle atteint la fin de la fonction non vide"

Je pense que cela signifie que je n'obtiens aucun résultat ... ce qui est évident, car rien n'imprime.

Était-ce utile?

La solution

Est-ce que " name " correspond exactement à la classe de l'entité - PAS l'attribut que vous voulez de l'entité - dans votre fichier .xcdatamodel? Vérifiez-vous que, dans le délégué de l'application, les méthodes d'installation se terminent sans erreur? Avez-vous vérifié managedObjectContext! = Nil? Avez-vous édité le fichier .xcdatamodel? Si vous le faites depuis la dernière exécution du programme, vous devez soit supprimer le fichier de données du répertoire Documents du simulateur pour votre application, soit ajouter la version du modèle à votre modèle de données.

Comme gerry3 l’a dit, votre premier problème est que la fonction spécifie que vous devez renvoyer un tableau et que vous ne renvoyez rien.

Un autre problème est que vous récupérez les attributs de la classe " nom " mais vous utilisez ensuite " name " à nouveau comme valeurForKey. Avez-vous vraiment une entité " nom " avec attribut " nom " ;? Il est plus probable que votre entité porte un autre nom et que son nom est son attribut. Dans ce cas, vous devez modifier la méthode NSEntityDescription entityForName: argument.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top