2014-09-08 3 views
0

J'ai un problème avec NSPRedicate; il renvoie une valeur nulle. Mais mon ObjectType le voit; peut-être problème dans predecateFormat? Je ai 3 objets et je l'obtiens par Type. Source:Problème NSPredicate avec les objets de type

typedef NS_ENUM(NSUInteger, ObjectType) { 
    FirstType, 
    SecondType, 
    ThdType, 
}; 

Je processus avec demande CoreData:

- (NSArray *)objectsByType:(ObjectType)type{  
    NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
    [request setEntity:[self objectEntity]]; 

     NSPredicate *pred = [NSPredicate predicateWithFormat:@"self.objectType == %d", type]; 
     [request setPredicate:pred]; 

    NSError *err = nil; 
    NSArray *objects = [[self managedContext] executeFetchRequest:request error:&err]; 

    if(err){ 

     DLog(@"Failed to fetch objects %@", [err localizedDescription]); 
    } 

    return objects; 
} 

Je pense que problème est ici.

+1

Définissez votre type sur un NSNumber comme étant ce qui est stocké dans les données de base. '@" self.objectType ==% @ ", @ (type)' – sbarow

+0

Je l'ai essayé, ne fonctionne pas ... ** Génération SQL non implémentée pour le prédicat (objectType LIKE 1) ** – NilsHolgerson

+0

Est-ce que cela ne se produit que si est un 'NSNumber'? – sbarow

Répondre

1

Définissez votre type sur NSNumber comme étant ce qui est stocké dans les données de base. @"self.objectType == %@", @(type)

Questions connexes