Je suis en train de développer une application qui doit vérifier si une chaîne a été enregistrée dans la base de données ou non. Cela peut sembler une opération facile, mais il faut une demi-seconde pour retourner une réponse qui, je pense, est beaucoup. Ma question est de savoir s'il y a moyen de réduire ce temps. Merci de votre intérêt.Optimisation de la requête de récupération des données de base
Ceci est mon code actuel:
- (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;
}
Pourriez-vous expliquer les entités et les relations? Je ne comprends pas très bien le prédicat. –
Il n'y a pas de relation entre les différentes entités. Plus précisément, cette entité contient juste un attribut qui est celui appelé _deletedpics_. En se référant au prédicat, l'idée est de vérifier si l'image a été rapportée comme supprimée ou non. J'organise les registres supprimés comme "deleted.status (variable dont j'ai besoin pour d'autres opérations) .picturenumber". Dans cette fonction je veux vérifier si une certaine image a été supprimée ou non sans tenir compte de l'état. C'est pourquoi j'ai utilisé ce prédicat. J'espère que c'est plus clair maintenant. –
Essayez d'indexer cette propriété. Que signifie «@» supprimé. *.% I "'? –