Je continue à obtenir l'erreur « Mettre fin application en raison d'une exception non interceptée « NSInvalidArgumentException », raison: « + [MainViewController minimalFormInContext:]: sélecteur non reconnu envoyé à la classe » de cette ligne de code: NSLog (@ "Accès à des entités minières spécifiques");Avoir la copie de données de la difficulté à un tableau mutable
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Mine" inManagedObjectContext:managedObjectContext];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
NSError *error = nil;
[request setEntity:entity];
NSPredicate *predicate;
NSPredicate *metalFilter;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *region = [defaults stringForKey:@"mineArray"];
if([region isEqualToString:@"Butte & Plumas"])
{
predicate = [NSPredicate predicateWithFormat:@"(county Contains %@) OR (county Contains %@)",@"Butte",@"Plumas"];
}
else if([region isEqualToString:@"Sutter, Yuba, & Sierra"])
{
predicate = [NSPredicate predicateWithFormat:@"(county Contains %@) OR (county Contains %@) OR (county Contains %@)",@"Sutter",@"Yuba",@"Sierra"];
}
else if([region isEqualToString:@"Nevada & Placer"])
{
predicate = [NSPredicate predicateWithFormat:@"(county Contains %@) OR (county Contains %@)",@"Nevada",@"Placer"];
}
else if([region isEqualToString:@"Sacramento & El Dorado"])
{
predicate = [NSPredicate predicateWithFormat:@"(county Contains %@) OR (county Contains %@)",@"Sacramento",@"El Dorado"];
}
else if([region isEqualToString:@"San Joaquin, Amador, & Calaveras"])
{
predicate = [NSPredicate predicateWithFormat:@"(county Contains %@) OR (county Contains %@) OR (county Contains%@)",@"San Joaquin",@"Amador", @"Calaveras"];
}
else if([region isEqualToString:@"Tuolumne & Stanislaus"])
{
predicate = [NSPredicate predicateWithFormat:@"(county Contains %@) OR (county Contains %@)",@"Tuolumne",@"Stanislaus"];
}
else if([region isEqualToString:@"Merced, Mariposa, & Madera"])
{
predicate = [NSPredicate predicateWithFormat:@"(county Contains %@) OR (county Contains %@) OR (county Contains %@)",@"Merced",@"Mariposa",@"Madera"];
}
[request setPredicate:predicate];
mArray = [[NSMutableArray alloc] init];
mArray = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
en utilisant débogueur, j'ai rétréci l'erreur comme se produisant dans:
mArray = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
Comment puis-je résoudre ce problème?
Je soupçonne fortement que c'est le dernier - le sélecteur invalide énuméré est une méthode de NSPredicate. Donc, probablement, la variable qu'il pense pointer vers un NSPredicate pointe en fait vers un emplacement de mémoire aléatoire. – Chuck
mon mArray est synonyme de mineArray. Ce que j'essaie de faire est de créer un tableau d'entités à utiliser temporairement dans le programme; existe-t-il un meilleur moyen de placer des données dans un tableau à partir d'une requête de récupération? J'ai édité les prédicats pour égaler zéro avant qu'ils ne soient utilisés. –
et il semble que les mettre à zéro est un non-non, donc je les ai juste mis à égalité avec un autre prédicat. –