2016-06-05 5 views
1

Ich möchte einige Core Data Entitäten über eine for in Schleife ändern. Die abgerufenen Objekte sollten über ein Prädikat gefiltert werden. Die Schleife wird jedoch nie ausgelöst, da keine Objekte abgerufen werden.Predicate quandary

Ich vermute, es gibt ein Problem mit dem Prädikat, obwohl ich es ziemlich genau überprüft habe. Hier ist der Code:

NSString *replenishString = @"Replenishment"; 
NSDate *now = [NSDate date]; 

NSPredicate *transFRCPredicate = [NSPredicate predicateWithFormat:@"(account == %@) AND ((transDate >= %@) AND (transDate <= %@)) AND (category != %@)",self.detailTransaction.account,self.detailTransaction.transDate,now,replenishString]; 


NSFetchedResultsController *transactionsToAdjustFRC = [WMMGTransaction MR_fetchAllGroupedBy:@"account" withPredicate:transFRCPredicate sortedBy:@"transDate" ascending:NO]; 

(...) 

    for (WMMGTransaction *transaction in transactionsToAdjustFRC.fetchedObjects) 
    { 
     NSLog(@"Inside for loop--delta = %@",delta); 
     transaction.category = @"Changed +"; 

     transaction.pointBalance = [transaction.pointBalance decimalNumberByAdding: delta]; 
     NSLog(@"Inside for loop--pointBalance = %@",transaction.pointBalance); 
    } 

Irgendwelche Ideen oder Anleitung?

Danke!

+0

erwartest du Kategorie! =% @ (ReplenishString), um Groß-und Kleinschreibung zu beachten? Ein direkter Zeichenfolgenvergleich mit = oder! = Setzt eine exakte Übereinstimmung voraus. –

+0

Momentan gibt es nur zwei Möglichkeiten: nil oder Replenishment, also ja, exakte Übereinstimmung ... – rattletrap99

+0

Das Prädikat ausdrucken und das Ergebnis hier posten. –

Antwort

1

Vorsicht bei der Verwendung von "! =" In Prädikaten: Ein Nullwert stimmt nicht überein. Einen spezifischen Test für null einschließen:

NSPredicate *transFRCPredicate = [NSPredicate predicateWithFormat:@"(account == %@) AND ((transDate >= %@) AND (transDate <= %@)) AND (category != %@ OR category == nil)",self.detailTransaction.account,self.detailTransaction.transDate,now,replenishString]; 
Verwandte Themen