2012-08-26 11 views
5

Nie jestem całkowicie pewien, dlaczego to nie działa teraz, myślałem, że działało wcześniej. Czy ktoś widzi problem z tą konstrukcją FetchRequest?NSPredicate "Lewa strona dla operatora WSZYSTKIEGO lub KAŻDEGO musi być NSArray lub NSSet"

- (NSArray *)entriesForDate:(NSDate *)date { 
    NSFetchRequest *request = [[NSFetchRequest alloc]initWithEntityName:@"Entry"]; 
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY addedOn.unique like %@", [T3Utility identifierForDate:date]]; 
    request.predicate = predicate; 

    NSError *error = nil; 
    NSArray *matches = [self.database.managedObjectContext executeFetchRequest:request error:&error]; 

    return matches; 
} 

Jeszcze raz mam 99% pewności, że ten kod działa do niedawna, więc myślę, że może gdzieś coś się dzieje w moim kodzie. . Ale kiedy uruchomię to przez debugger, to tam się wisi. Oto mój błąd:

Po lewej stronie dla wszystkich lub operatora musi być albo NSArray lub NSSet

Jakieś pomysły?

dziękuję!

+0

Jakie są atrybuty i relacje waszych podmiotów? –

Odpowiedz

8

Wygląda na to, że addedOn nie jest relacją wiele do wielu. Upewnij się, że używasz poprawnych nazw swoich atrybutów/relacji w predykacie. Zauważ też, że nie możesz użyć relacji jeden do jednego w predykacie "KAŻDYM".

+2

+1 konkretnie, albo "addedOn" musi być do-wielu, z 'unique' będącym własnością (lub relacją jeden do jednego), lub' addedOn' musi być jednoznaczne, a 'unique' musi być a - wiele związków. –

Powiązane problemy