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!
erwartest du Kategorie! =% @ (ReplenishString), um Groß-und Kleinschreibung zu beachten? Ein direkter Zeichenfolgenvergleich mit = oder! = Setzt eine exakte Übereinstimmung voraus. –
Momentan gibt es nur zwei Möglichkeiten: nil oder Replenishment, also ja, exakte Übereinstimmung ... – rattletrap99
Das Prädikat ausdrucken und das Ergebnis hier posten. –