Ich bin Entwickler und Anwendung, die prüfen muss, ob eine Zeichenfolge in der Datenbank gespeichert wurde oder nicht. Das mag eine einfache Operation sein, aber es braucht eine halbe Sekunde, um eine Antwort zurückzugeben, von der ich denke, dass sie ziemlich viel ist. Meine Frage ist, ob es irgendeinen Weg gibt, diese Zeit zu reduzieren. Danke für Ihr Interesse.Core Data Abrufanforderung Optimierung
Dies ist mein aktueller Code:
- (BOOL) isDeleted:(int)i {
NSString *value = [NSString stringWithFormat:@"deleted.*.%i", i];
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSString *entityName = @"Deleted";
NSEntityDescription *entityDesc = [NSEntityDescription entityForName:entityName inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDesc];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(deletedpics like %@)", value];
[request setPredicate:pred];
NSError *error;
NSArray *objects = [context executeFetchRequest:request error:&error];
BOOL returnBool = [objects count] >= 1 ? YES : NO;
return returnBool;
}
Können Sie die Entitäten und Beziehungen erklären? Ich verstehe das Prädikat nicht ganz. –
Es gibt keine Beziehung zwischen den verschiedenen Entitäten. Insbesondere enthält diese Entität nur ein Attribut, das als _deletedpics_ bezeichnet wird. Mit Bezug auf das Prädikat soll überprüft werden, ob das Bild als gelöscht gemeldet wurde oder nicht. Ich organisiere die gelöschten Register als "delete.status (Variable, die ich für andere Operationen benötige) .picturenummer". In dieser Funktion möchte ich prüfen, ob ein bestimmtes Bild gelöscht wurde oder nicht, ohne den Status zu berücksichtigen. Deshalb habe ich dieses Prädikat verwendet. Ich hoffe, es ist jetzt klarer. –
Versuchen Sie, diese Eigenschaft zu indizieren. Was ist '@" gelöscht. *.% I "'gemein? –