2010-07-15 5 views
1

En essayant d'enregistrer une liste de Device classes (une classe personnalisée) en utilisant les données de base et de le récupérer. Mais après l'avoir sauvegardé, ma requête, qui est TRÈS simple, ne renvoie aucun enregistrement.iphone core data save ne fonctionne pas

Mon appel pour enregistrer les enregistrements renvoie toujours OUI et aucune erreur:

BOOL resultOfSave = [managedObjectContext save:&err]; 

Mon prédicats pour la recherche par le Userlogin de la propriété est comme ceci:

- (NSArray *) devicesForUser:(NSString *)username 
{ 
NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Device" inManagedObjectContext:managedObjectContext]; 
[request setEntity:entity]; 

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userLogin = %@", username]; 
[request setPredicate:predicate]; 

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"macAddress" ascending:YES]; 
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 
[request setSortDescriptors:sortDescriptors]; 
[sortDescriptors release]; 
[sortDescriptor release]; 

NSError *error = nil; 
NSArray *fetchResults = [managedObjectContext executeFetchRequest:request error:&error]; 
if (fetchResults == nil) { 
    // Handle the error. 
    NSLog(@"ERROR: nil fetch result array"); 
} 

[request release]; 
NSLog(@"devicesForUser [%@] count %d", username, [fetchResults count]); 
return fetchResults;  
} 

mais je reçois toujours aucun résultat, si je me débarrasse de la prédécate, j'obtiens tous les objets, et si je les parcoure en boucle, je peux voir que la propriété userLogin pour au moins un des objets est définie sur le nom d'utilisateur que je passe ...

Quelqu'un at-il déjà eu un problème comme celui-ci ???

Merci pour toute aide que vous pouvez donner

Mark

Répondre

2

Dans votre prédicat, le changement:

@"userLogin = %@" 

... à:

@"userLogin == %@" 
+0

ok, mal essayer que grâce ... – Mark

+0

ok, semblait fonctionner ... il y avait beaucoup d'autres problèmes ici, donc il peut avoir été une combinaison de chose s, mais cela a certainement aidé :) – Mark

Questions connexes