Hallo,
ich habe mir folgenden Coredata Abfrage gebaut:
Alles anzeigen
Alles anzeigen
Wenn ich nun diese Abfrage ausführe, habe ich das Problem, dass meine Meine App 100% CPU benötigt und gar nix mehr macht. Ich habe raus gefunden das dieses Problem bei dieser Codestelle auftritt:
Ich denke dass es mit dem NSPredicate zusammenhängt, was ich mir über das Array zusammenbaue, nur leider weiß ich gerade nicht genau, warum ich hier gerade so extreme Performenceprobleme bekomme. Wenn ich 2 oder 3 Events in dem Array habe, läuft alles perfekt, aber wenn ich 8 drin habe geht einfach gar nix mehr.
Danke
Gruß
Bongartz
ich habe mir folgenden Coredata Abfrage gebaut:
Quellcode
- //alle reisen suchen die zu der Person gehören
- if (self.person != nil) {
- NSMutableArray *arrayWithEvents = [NSMutableArray array];
- for (id eventForPerson in [self.person valueForKey:@"event"]) {
- [arrayWithEvents addObject:[NSPredicate predicateWithFormat:@"ANY %K == %@", cEntityReiseRelationshipEvent, eventForPerson]];
- }
- //Verknüpfung der einzelen Events mit einem ODER das alle gesucht werden
- self.fetchPredicateReise = [NSCompoundPredicate orPredicateWithSubpredicates:arrayWithEvents];
- } else {
- self.fetchPredicateReise = nil;
- }
Quellcode
- -(NSFetchedResultsController *)fetchedResultsControllerReise {
- if(self.detailEventReiseFetchResultsController != nil) {
- return self.detailEventReiseFetchResultsController;
- }
- NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]init];
- NSEntityDescription *entityDescription = [NSEntityDescription entityForName:cEntityReise inManagedObjectContext:[JSMCoreDataHelper managedObjectContext]];
- fetchRequest.entity = entityDescription;
- fetchRequest.predicate = self.fetchPredicateReise;
- fetchRequest.fetchBatchSize = 64;
- NSSortDescriptor *sortPerson = [[ NSSortDescriptor alloc] initWithKey:cEntityReiseAttributeKurzbezeichnung ascending:YES];
- NSArray *sortArray = [NSArray arrayWithObject:sortPerson];
- fetchRequest.sortDescriptors = sortArray;
- self.detailEventReiseFetchResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:[JSMCoreDataHelper managedObjectContext] sectionNameKeyPath:nil cacheName:nil];
- self.detailEventReiseFetchResultsController.delegate = self;
- return self.detailEventReiseFetchResultsController;
- }
Wenn ich nun diese Abfrage ausführe, habe ich das Problem, dass meine Meine App 100% CPU benötigt und gar nix mehr macht. Ich habe raus gefunden das dieses Problem bei dieser Codestelle auftritt:
Ich denke dass es mit dem NSPredicate zusammenhängt, was ich mir über das Array zusammenbaue, nur leider weiß ich gerade nicht genau, warum ich hier gerade so extreme Performenceprobleme bekomme. Wenn ich 2 oder 3 Events in dem Array habe, läuft alles perfekt, aber wenn ich 8 drin habe geht einfach gar nix mehr.
Danke
Gruß
Bongartz
Vielen Dank
Gruß
Bongartz
Gruß
Bongartz